从FFmpeg获取视频的宽高比

Roc*_*ngh 7 ffmpeg

我正在使用FFmpeg将视频从一种格式转换为另一种格式.我需要先提取视频的宽高比.我怎样才能找到这些信息?

vip*_*ipw 15

ffprobe最适合获取媒体信息.当使用ffmpeg -i文件而没有其他参数时,ffmpeg会返回错误状态.

  • `ffprobe -i <filename> -show_streams`还将输出视频和音频流的key = value列表.例如:`... sample_aspect_ratio = 1:1 display_aspect_ratio = 8:5 ...`可能更容易以编程方式解析结果 (4认同)
  • 另外需要注意:有几种打印选项,例如`-print_format json`可以在任何情况下以最实用的格式获得输出 (4认同)

Jas*_*n B 14

赶紧跑

ffmpeg -i <yourfilename>
Run Code Online (Sandbox Code Playgroud)

有关文件中包含的视频流的详细信息将打印到屏幕上.为每个视频流列出的两个参数将是PAR(像素宽高比)和DAR(显示宽高比).你会看到这样的事情:

 Stream #0.10[0x258]: Video: mpeg2video, yuv420p, 720x576 [PAR 64:45 DAR 16:9], 4350 kb/s, 27.97 fps, 25 tbr, 90k tbn, 50 tbc
Run Code Online (Sandbox Code Playgroud)

DAR是最终显示视频的比例.PAR表示如何调整像素的大小以实现此目的.例如,在我刚刚展示的情况下,(720*64)/(576*45) = 16/9.

很多时候,PAR将等于1:1,这意味着DAR应该等于视频分辨率的比率.


Mar*_*rko 5

ffprobe -v error -select_streams v:0 -show_entries stream=width,height,sample_aspect_ratio,display_aspect_ratio -of json=c=1 'filepath.mov'
Run Code Online (Sandbox Code Playgroud)

该命令将以 json 格式获取文件的第一个视频流的宽度、高度、sar 和 dar。