2 votos

¿Es seguro omitir el códec al convertir con ffmpeg?

Me di cuenta hoy que me podría codificar o transcodificación de vídeo y audio utilizando ffmpeg sin especificar un códec, debido al hecho de que parece implicar el códec de vídeo o audio que se está codificada o transcodificado a partir de la extensión de la salida. Esto significa que:

ffmpeg "input.mp3" -c:a aac "output.m4a"

...puede ser reemplazada por:

ffmpeg "input.mp3" "output.m4a"

Además:

ffmpeg "input.dts" -c:a copy -ac 2 "output.dts"

...puede ser reemplazada por:

ffmpeg "input.dts" -ac 2 "output.dts"

Dado que siempre incluyendo explícitamente el códec es la manera más popular para uso ffmpeg he visto en este sitio en particular - me preguntaba si había razones para que este sea el caso.

Existen posibles riesgos a considerar cuando se utiliza ffmpeg a codificar de esta manera? Es seguro asumir que el resultado sería exactamente la misma conversión que especificar explícitamente un códec puede?

3voto

LordNeckbeard Puntos 10639

Lo mejor es especificar el codificador

  • Algunas de las selecciones predeterminadas son antiguos o raros. Por ejemplo:

    • flv1 es elegido para la salida FLV. La mayoría de la gente espera H. 264 (libx264).

    • flac es elegido para OGG/OGA de salida. La mayoría de la gente espera Vorbis (libvorbis).

  • El codificador se utiliza como el valor predeterminado para un formato de salida dependen de las opciones de configuración se utiliza para compilar su ffmpeg. Así que si tu ffmpeg no ha --enable-libx264, a continuación, MP4, el codificador mpeg4 (MPEG-4 Parte 2 video) se utiliza en lugar de libx264 (H. 264 de vídeo). La mayoría de la gente usa ffmpeg construye con el apoyo de la mayoría de las bibliotecas populares, incluidos, pero ocurre en ocasiones.

  • No es mucho trabajo para ser específicos.

Pero a veces puede ser perezoso

Si usted sabe lo que codificadores van a ser elegido, o si usted comprobar y verificar, entonces usted puede ahorrar un par de pulsaciones de teclas, si quieres. Consulte mapas de Flujo en la salida de la consola para ver lo que codificadores ffmpeg utiliza. Ejemplo:

ffmpeg -i input.foo output.mp4
...
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
  Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))

En este caso es el uso de libx264 para vídeo (-c:v libx264), y el nativo de la AAC encoder para el audio (-c:a aac).

Usted puede ver los detalles específicos de la muxer para ver lo de los codecs por defecto, se usará:

ffmpeg -h muxer=mp4
...
Muxer mp4 [MP4 (MPEG-4 Part 14)]:
    Default video codec: h264.
    Default audio codec: aac.

1voto

szatmary Puntos 747

¿Es seguro asumir que daría lugar a exactamente la misma conversión que la especificación explícita de un códec?

No necesariamente. Es "seguro" porque obtendrá un archivo que funciona. Ffmpeg elegirá un códec preferido que funcione con ese contenedor. Sin embargo, utilizando una extensión de archivo diferente PUEDE elegir un códec diferente. También el códec preferido podría cambiar en el futuro, o en función de cómo se compiló Ffmpeg.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: