如何用ffmpeg取帧数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1626)

有谁知道如何使用ffmpeg从视频文件中获取总帧数吗?ffmpeg的渲染输出显示当前帧,我需要帧数来计算百分比进度。

提问于
用户回答回答于

ffprobe

示例命令

$ ffprobe -v error -count_frames -select_streams v:0 \
  -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 \
  input.mkv

示例输出

  2600
  • 在这个例子中,输出是2600指读取帧的数量。
  • 由于必须解码整个文件,因此根据输入该命令可能需要一段时间才能完成。

选项意味着什么

  • -v error 这隐藏了“信息”输出(版本信息等),使分析更容易。
  • -count_frames 计算每个流的帧数并在相应的流部分报告。
  • -select_streams v:0 只选择视频流。
  • -show_entries stream=nb_read_frames 仅显示读取帧的数量。
  • -of default=nokey=1:noprint_wrappers=1设置输出格式(即“作者”)default,不要打印每个字段(nokey=1)的关键字,并且不要打印节标题和页脚(noprint_wrappers=1)。

用户回答回答于

在Unix中

ffmpeg -i 00000.avi -vcodec copy -acodec copy -f null /dev/null 2>&1 | grep 'frame=' | cut -f 2 -d ' '

所属标签

可能回答问题的人

  • Richel

    9 粉丝0 提问3 回答
  • 无聊至极

    6 粉丝504 提问2 回答
  • 学生

    8 粉丝476 提问2 回答
  • 风华一代

    3 粉丝469 提问2 回答

扫码关注云+社区

领取腾讯云代金券