Ya he leído los otros artículos sobre la concatenación, pero no pude encontrar ninguno que discuta la especificación de la tasa de bits de salida.
Tengo 2 videos MP4.
Lo que quiero hacer es acelerar el primer video al 110% de la velocidad (sin cambiar el tono del audio) y luego concatenarlo con el segundo video (que permanecerá a la velocidad normal), y quiero que el video resultante tenga una tasa de bits de 2.5 Mbps (ya que eso es lo que Wistia me dijo que debería ser el mínimo para mi carga).
Actualmente, mi primer intento da como resultado un video en el que la segunda parte está completamente destrozada y muestra un color verde brillante, etc. Mi segundo intento (del Paso 4) da como resultado un video que tiene una tasa de bits total de solo 1645 kbps.
Paso 1:
En Adobe Premiere Pro CC 2017, exporté 2 videos, cada uno con esta configuración:
Frame Rate: 30
Field Order: Progressive
Aspect: Square Pixels (1.0)
Profile: Main
Bitrate Encoding: CBR
Target Bitrate [Mbps]: 2.5
Audio Format: AAC
Audio Codec: AAC
Sample Rate: 48000 Hz
Bitrate [kbps]: 320
Paso 2.
ffmpeg -i video1.mp4 -filter_complex "setpts=PTS/1.1;atempo=1.1" -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M video1_faster.mp4
Paso 3. Cree un archivo de texto de este contenido:
file 'video1_faster.mp4'
file 'video2.mp4'
Paso 4 (primer intento).
ffmpeg -f concat -safe 0 -i ffmpeg_concat_list.txt -c copy final.mp4
Paso 4 (segundo intento) (con recodificación).
ffmpeg -i video1_faster.mp4 -i video2.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M final.mp4
¿Qué estoy haciendo mal? Gracias.
El paso 4 (primer intento) funcionará si vuelve a codificar el segundo video como el primero (sin los filtros).
Lo que sucede es que, además de la diferencia de escala de tiempo entre la salida de CC y la de ffmpeg (que solo generará errores de tiempo), x264 produce una transmisión de alto perfil con un conjunto de parámetros diferente al del codificador de CC. Vuelva a codificar el segundo video con ffmpeg y sus archivos deberían coincidir. Alternativamente, puede acelerar en CC y exportar el primer video.
Esto pareció funcionar (más o menos *):
ffmpeg -i video1_faster.mp4 -i video2.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M final.mp4
Observe cómo me había perdido la -c:v libx264 -x264-params "nal-hrd=cbr"
parte en el "Paso 4 (segundo intento)" en mi pregunta anterior.
* Disminuyó la tasa de bits del audio a 103 kbps a pesar de que las tasas de bits de audio de los 2 archivos de entrada eran 317 kbps y 127 kbps. Así que mi próximo proyecto será tratar de descubrir cómo mejorar el Paso 2 para preservar la tasa de bits de audio del archivo original y luego mejorar el Paso 4 para preservar las tasas de bits de audio nuevamente.
Definitivamente preferiría aceptar la respuesta (mejor) de otra persona.
rogerdpack
Ryan
version N-82889-g54931fd Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (GCC)
rogerdpack