¿Cómo concatenar 2 videos MP4 a la salida de cierta tasa de bits?

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.

¿Los dos archivos separados están bien? ¿Qué versión de ffmpeg?
@rogerdpack Sí.version N-82889-g54931fd Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (GCC)
un par de años, git master "puede" funcionar mejor quién sabe...

Respuestas (2)

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.

Wow, esta simple idea de alguna manera me eludió. Gracias. Aunque prefiero evitar volver a codificar siempre que sea posible, podría estar dispuesto en este escenario ya que no he encontrado una solución mejor. PD En mi experiencia, FFmpeg hace un mejor trabajo que Adobe Premiere Pro CC 2017 al acelerar un video mientras conserva el tono de audio. Premiere sonaba bastante mal, sorprendentemente.
Exporte el audio por separado y filtre, codifique y mux con video con velocidad CC. Entonces no es necesario volver a codificar el 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.

No prestaría mucha atención a las pautas de tasa de bits de Wistia o de la mayoría de los otros sitios. Se emiten para una audiencia masiva y están destinados a ser pisos seguros, ya que la mayoría de los editores de video de consumo e incluso profesionales no tienen codificadores que funcionen bien con VBR. No es el caso de x264/5 y ffmpeg/fdk AAC. Si se ve y suena bien, estás bien.
@Gyan Eso es probablemente cierto en general. En este caso, no fue una guía para el público, sino una discusión por correo electrónico entre el equipo de soporte de Wistia y yo, ya que mi video no funcionaba bien en diferentes dispositivos, y su instrucción era volver a cargar el video al menos. 2500 kbps.