Digamos que tengo un video, que puede tener cualquier dimensión o códec (por ejemplo, mp4), y quiero agregar 3 segundos de cuadros negros a su cabeza.
He visto otras variantes de esta pregunta que se refieren a agregar un solo cuadro, y también respuestas que especifican el ancho y la altura del video. Sin embargo, el video puede ser de cualquier ancho y alto y no quiero cambiar esos valores. Solo agrega el negro. En un comando separado, también me gustaría agregar los segundos de negro a la cola.
No debe haber audio en la sección negra; el negro solo debe concatenarse al frente y al final. Además, me gustaría evitar volver a codificar el video si es posible, y copiar el resultado a un nuevo archivo.
Cualquier ayuda sería apreciada.
Respuestas:
El método básico para unir videos sin volver a codificar es usar el demuxer concat. Este dispositivo requiere que los archivos que se unen compartan ciertas propiedades, como códec, velocidad de cuadros, dimensiones de video, base de tiempo ... etc.
El primer paso es crear el segmento en blanco, que puede usarse tanto en la cabeza como en la cola.
Tiene que hacer un paso de contabilidad para el video completo. Si no se hace, el video combinado probablemente se ejecutará a la velocidad incorrecta.
Luego, crea un archivo de texto.
Entonces corre
Mi primer paso asume que la transmisión de video tiene el formato de píxel más común
yuv420p
. Lo que debería estar bien, ya que este es el único formato de píxeles compatible con reproductores web y cámaras de teléfonos inteligentes, videocámaras de consumo ... etc. Si no es así, elgeq
filtro puede fallar.También supongo, tácitamente, que el video completo no usa más cuadros de referencia que los producidos por el preajuste
medium
de x264. Es una suposición segura para el 95% de los videos.Finalmente, supongo que el video completo tiene AAC-LC como códec de audio. Se espera que sea cierto para la mayoría de los videos de teléfono / cámara / web.
fuente