GNU/Linux >> Tutoriales Linux >  >> Linux

FFmpeg no copia todas las transmisiones de audio

FFmpeg tiene la opción de asignar todas las transmisiones a la salida, debe usar la opción -map 0 para mapear todos los flujos desde la entrada hasta la salida.

En línea completa podría verse como:

ffmpeg -i in.mp4 -c copy -map 0 out.mp4

Para obtener más información, consulte la documentación sobre la selección de secuencias y el -map opción.


Aparentemente, esta es una pregunta popular, por lo que estoy publicando mi solución como respuesta (anteriormente era una respuesta de comentario) para que otros puedan verla.

Logré encontrar la sintaxis correcta de este ticket. La sintaxis correcta es:

ffmpeg -i in.mp4 -vcodec copy -c:a copy -map 0:0 -map 0:1 -map 0:2 out.mp4

Esto copiará las 3 transmisiones.


OK, leí bastante profundo en el ffmpeg man page y encontré esto que debería ser útil:

Tenga en cuenta que actualmente cada flujo de salida solo puede contener canales de un solo flujo de entrada; por ejemplo, no puede usar "-map_channel" para seleccionar varios canales de audio de entrada contenidos en diferentes flujos (del mismo archivo o de archivos diferentes) y fusionarlos en un solo flujo de salida. Por lo tanto, actualmente no es posible, por ejemplo, convertir dos flujos mono separados en un solo flujo estéreo. Sin embargo, es posible dividir una transmisión estéreo en dos transmisiones mono de un solo canal.

Si necesita esta característica, una posible solución es utilizar el filtro de combinación. Por ejemplo, si necesita fusionar un medio (aquí input.mkv) con 2 flujos de audio mono en un solo flujo de audio de canal estéreo (y mantener el flujo de video), puede usar el siguiente comando:

ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv

Es posible que desee leer y experimentar con las instrucciones de la página de manual en man ffmpeg-filters para comprender en qué nivel de complejidad se está metiendo al nombrar los canales y el resultado esperado.

[Editar:como señaló Mulvya, esto responde una pregunta, pero no era exactamente la pregunta del cartel original.]


Linux
  1. ¿Buscar todo [nombre de archivo].mp4 y cambiar el nombre de [nombre de archivo].audio?

  2. ¿Cómo encontrar todos los archivos que no contienen una cadena de texto?

  3. Linux:¿por qué Rsync en Linux no conserva todas las marcas de tiempo (hora de creación)?

  4. ¿La CPU es gratuita, pero el script Bash no utiliza todos los recursos de la CPU?

  5. ¿El motor de audio Qt no está en Ubuntu SDK?

Cómo usar FFMpeg para hacer una conversión de audio simple

Audio de Linux:solo altavoces o micrófono disponibles, no ambos

Los comandos FFmpeg más útiles para la conversión de audio y video

ffmpeg eliminando la tercera transmisión no funciona

ERROR:se solicitó cuvid, pero no se satisfacen todas las dependencias:cuda/ffnvcodec

¿Razones para que rsync NO transfiera todos los archivos?