Con solo la información que proporcionó, esto es lo que puedo pensar.
Vamos por partes:
Como solo hay una imagen agregada al video. Me pregunto si hay una manera de reducir el tamaño del video, por ejemplo, forzar la tasa de bits / segundo = 1 en lugar de 28.
Como es una imagen fija, no es necesario cambiarla. simplemente quedarse quieto.
De lo que estás hablando es de cuadros por segundo (fps), no tasa de bits. Y tienes razón en el concepto. Beign solo una imagen fija 1 fps no sería un problema.
¿Es un tamaño razonable para mp4? ¿Importa mucho el tamaño de la imagen?
En este caso, el tamaño de la imagen no tendría un peso significativo porque estamos tratando con una sola imagen fija. Si se tratara de un video de alta calidad, entonces es un problema diferente.
¿Debo cambiar el tamaño de jpg a 1080 * 720 y hacer ajustes adicionales en ffmpeg para que salgan como 720p (¿cuál es la configuración de ffmpeg entonces :)?
La resolución que estás diciendo es 1280x720.
No veo el punto en la -loop 1
opción aquí, solo ralentizará el proceso. ¿Usó -shortest
porque el archivo tiene más de 1 flujo de entrada? Si no, entonces no hay razón para usarlo. Como usaste -acodec copy
, tendré que suponer que no quieres volver a codificarlo.
Para una salida de 720p 1 fps sin volver a codificar y sin tocar la tasa de bits:
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 output.mp4
Señale el caso de que tiene más de una secuencia de entrada y desea que ffmpeg termine la codificación en la secuencia más corta y luego:
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 -shortest output.mp4
Ahora, si tiene que cambiar la tasa de bits (digamos 1024k como ejemplo);
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -b:v 1024k -bufsize 1024k -s 1280x720 output.mp4
Ver: limitar la tasa de bits de salida
-c: a copy = Copia el flujo de audio de entrada para que no se vuelva a codificar.
-b: v = La tasa de bits especificada para ser (no precisamente) constante.
-bufsize = Es el intervalo en el que se calcula la tasa de bits promedio. Es decir, la imagen con menor calidad de pérdida más pero tasas de bits más precisas de acuerdo con lo especificado en -b: v .
-s = El tamaño real de la salida de video.
-framerate = La velocidad de fotogramas de entrada que queremos que use la salida.
Tenga en cuenta que si aún desea un video de menor tamaño en algún momento, tendrá que sacrificar la calidad para lograrlo. Y otras formas de hacerlo implican volver a codificar con compresión con pérdida.
Por lo que dices, la información que brindas y lo que intentas hacer, creo que parece que tu objetivo es incrustar la carátula del álbum en mp3. Si ese es su objetivo, esto se adaptaría mejor a sus necesidades:
ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3
-map_metadata = El especificador de metadatos ffmpeg para generar el archivo desde el archivo. En este caso ( cero ) los metadatos globales.
-map 0 = flujo de entrada 1 (audio).
-map 1 = flujo de entrada 2 (imagen).
Si nada aquí satisface sus solicitudes, brinde más información.