¿Cuál es la diferencia entre "-acodec" y "-c" en FFMPEG?

¿Cuál es la diferencia entre "-acodec" y "-c" en FFMPEG?

Soy nuevo en FFMPEG y no puedo encontrar mucha documentación clara sobre esto específicamente.

Estoy concatenando 3 mp3 (solo quiero muxing, sin codificación/transcodificación).

Ambos comandos parecen funcionar bien. ¿Hay alguna diferencia entre usar '-c' y '-acodec'?

ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -acodec copy out.mp3

ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -c copy out.mp3

Busqué en Google durante horas, encontré diversa documentación de ffmpeg pero ninguna que explique qué hacen realmente -c o -acodec. Creo que -c significa 'códec' y -acodec significa 'códec de audio'. ¿Qué hace cada uno/hay alguna diferencia/hay alguno mejor?

Documentación que encontré que no ayuda:

https://ffmpeg.org/ffmpeg-all.html

https://gist.github.com/tayvano/6e2d456a9897f55025e25035478a3a50

También cualquier sugerencia sobre cómo mejorar esto es bienvenida (solo necesito unir secuencialmente 3 mp3).

Gracias.

Respuesta1

Para abordar su título.

Al hacerlo -c copyse copiará tanto el códec de audio (acodec) como el códec de vídeo (vcodec)

-c copyes lo mismo que -acodec copy -vcodec copy

-c:a copyes lo mismo que -acodec copy.

-c:v copyes lo mismo que-vcodec copy

y, por supuesto, puede especificar un códec, por ejemplo -vcodec libx264 o-c:v libx264

-c significa códec. Alternativamente puedes escribir -codec https://ffmpeg.org/ffmpeg.html p.ej -codec:a copy

y si no especifica, por ejemplo, -acodec copyo -acodec blahblaho -codec:a ..., elegirá algún códec predeterminado. También puedes decir -vnque no hay video.https://stackoverflow.com/questions/9913032/how-can-i-extract-audio-from-video-with-ffmpeg para que no copie el video. o -ansin audioEliminar audio de un archivo de video con FFmpeg

Agregado

La sintaxis de -acodecy -vcodecahora está en desuso. Y se recomienda usar la sintaxis de -c:ay -c:v(que son alias de -codec:ay -codec:v)

Respuesta2

-co -codeces un selector de transmisión genérico, por lo que puede usarlo para configurar el códec para cualquiera de las transmisiones, ya sea de audio o video.

-acodeces un subconjunto de esa funcionalidad que se aplica automáticamente a las transmisiones de audio

-acodec:1es igual -codec:a:1e indica que está configurando el códec para la segunda transmisión de audio (la primera transmisión de audio es 0).

de su documentación vinculada: -c, -codec

-c[:stream_specifier] códec (entrada/salida, por flujo) -codec[:stream_specifier] códec (entrada/salida, por flujo)

Select an encoder (when used before an output file) or a decoder (when used before an input file) for one or more streams. codec is the

nombre de un decodificador/codificador o una copia de valor especial (solo salida) para indicar que la secuencia no se va a volver a codificar.

-acodec

-códec acodec (entrada/salida)

Configure el códec de audio. Este es un alias para -codec:a.

También hay un -vcodec que funciona de la misma manera para transmisiones de video.

así que para ponerlo todo junto considere este comando del documento ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT

esto quiere decir que use el códec original para todos los flujos ( -c copy), pero para la segunda transmisión de video use libx264 ( -c:v:1 libx264), y para la transmisión de audio número 138 use libvorbis ( -c:a:137 libvorbis).

así que con -cpuedes controlar todos los tipos de transmisiones, mientras que -acodecy -vcodecson solo atajos para los subconjuntos de audio o video de las mismas.

información relacionada