2011-04-11 14 views
11

Estoy planeando usar ffmpeg para asegurar que todos los archivos de video cargados en mi sitio web estén codificados como mp4 h264.¿Hay alguna manera de usar ffmpeg para determinar la codificación de un archivo antes de la transcodificación?

En lugar de procesar automáticamente cada archivo, me gustaría minimizar la sobrecarga de procesamiento solo procesando aquellos archivos que ya no son mp4 h264. ¿Hay una manera fácil de hacer esto ya sea con ffmpeg o con otra utilidad de línea de comandos?

Respuesta

17

Si pasa un archivo de entrada a ffmpeg, sin otros parámetros, se le dará información sobre la fuente de vídeo:

ffmpeg -i myfile.avi 

Otra forma sería la opción -identify de MPlayer, lo que podría ser un poco más fácil analizar gramaticalmente. Hay un script de envoltura midentify que le brinda un mejor rendimiento. Ver this example.

+0

Grande que me da la información que necesito. Sin embargo, me gustaría no tener que analizar el resultado :) –

+0

MediaInfo puede hacer esto y tiene salida XML opcional. http://mediainfo.sourceforge.net/en - agarra la versión de línea de comando. –

+4

El paquete ffmpeg incluye el comando 'ffprobe' que admite varios formatos de salida como xml y json. Facilita el análisis de la salida de ffmpeg – mente

2

Una alternativa es usar ffprobe que se incluye con ffmpeg. A continuación se dará la salida más terso que puedo encontrar las herramientas de ffmpeg:

ffprobe -hide_banner -stats -i myfile.avi 
18

Uso ffprobe.

Comando de ejemplo

$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 input.mp4 

Resultado

h264 

Descripciones de opciones

  • -v error información adicional Omitir excepción de los errores fatales.

  • -select_streams v:0 Seleccione solo la primera transmisión de video. De lo contrario, se mostrará codec_name para todas las demás transmisiones del archivo, como el audio.

  • -show_entries stream=codec_name Solo muestra el codec_name en lugar de toda la información de la transmisión.

  • -of default=nokey=1:noprint_wrappers=1 Seleccione el estilo de formato de salida predeterminado y omita la información de clave y envoltura. De lo contrario, sin estas opciones, seria:

    [STREAM] 
    codec_name=h264 
    [/STREAM] 
    

Véase también

Cuestiones relacionadas