Is there a way to use ffmpeg to determine the encoding of a file before transcoding?

前端 未结 3 1403
遇见更好的自我
遇见更好的自我 2020-12-01 06:34

I am planning to use ffmpeg to ensure all video files uploaded to my website are encoded as mp4 h264.

Rather than automatically processing every file I would like t

相关标签:
3条回答
  • 2020-12-01 07:01

    Use ffprobe.

    Example command

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

    Result

    h264
    

    Option descriptions

    • -v error Omit extra information except for fatal errors.

    • -select_streams v:0 Select only the first video stream. Otherwise the codec_name for all other streams in the file, such as audio, will be shown as well.

    • -show_entries stream=codec_name Only output the codec_name instead of all stream info.

    • -of default=nokey=1:noprint_wrappers=1 Select the default output format style and omit the key and wrapper info. Otherwise, without these options, it will output:

      [STREAM]
      codec_name=h264
      [/STREAM]
      

    Also see

    • ffprobe documentation
    • FFmpeg Wiki: FFprobe Tips
    0 讨论(0)
  • 2020-12-01 07:02

    An alternative is to use ffprobe which is included with ffmpeg. The following will give the most terse output I can find from the ffmpeg tools:

    ffprobe -hide_banner -stats -i myfile.avi
    
    0 讨论(0)
  • 2020-12-01 07:10

    If you pass an input file to ffmpeg, without other parameters, it will give you information about the video source:

    ffmpeg -i myfile.avi
    

    Another way would be the -identify option of mplayer, which might be slightly easier to parse. There is a wrapper script midentify which gives you even better output. See this example.

    0 讨论(0)
提交回复
热议问题