php - 如何从 PHP/FFmpeg/MP4Box/Anything 中提取 MP4 搜索点信息?

标签 php ffmpeg mp4

是否可以通过以下方式从 MP4 文件中提取搜索点/关键帧:

关键帧 - 时间范围(以秒为单位) - 偏移量(以字节为单位)

例子:
0 - 0s - 77262

1 - 0.5s - 144183

2 - 1s - 222965

3 - 1.5s - 293303

4 - 2s - 362199

5 - 2.5s - 431178

提前致谢。

最佳答案

您可以使用 ffprobe .也许是这样的:

ffprobe -show_frames -select_streams v:0 -show_entries frame=key_frame,coded_picture_number,pkt_pts_time,pkt_pos input.mp4 | grep -A 3 "key_frame=1"

结果是:
key_frame=1
pkt_pts_time=0.000000
pkt_pos=48
coded_picture_number=0
--
key_frame=1
pkt_pts_time=10.000000
pkt_pos=47130
coded_picture_number=250
--
key_frame=1
pkt_pts_time=20.000000
pkt_pos=92713
coded_picture_number=500
--
key_frame=1
pkt_pts_time=30.000000
pkt_pos=138159
coded_picture_number=750
  • key_frame=1表示特定帧是关键帧。
  • 您可能不得不选择section_entries如果这个例子没有给你你想要的。见 man ffprobe .
  • -print_format更改输出打印格式的选项(默认、紧凑、csv、flat、ini、json、xml)。您可能必须执行额外的处理才能获得所需的内容。
  • 关于php - 如何从 PHP/FFmpeg/MP4Box/Anything 中提取 MP4 搜索点信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510730/

    相关文章:

    php - 如何展示多个分类以及每个分类下的产品?

    javascript - 检查是否存在任意 Controller / Action

    bash - 如何使用 FFMPEG 准确分割 LONG GOP 视频(h264/XDCAM ...)?

    c++ - ffmpeg/libx264 C API : frames dropped from end of short MP4

    php - 带有额外分组的mysql排序字段增量值

    php - Preg_replace 为 url 和下载链接

    ffmpeg - 如何从文件中获取透视坐标以使用 ffmpeg 进行图像叠加?

    c# - 将 MP4 帧流式传输到 HTML5,我做错了什么?

    FFmpeg 自定义构建支持将 .ts 转换为 .mp4 文件

    Android 媒体编解码器 : Reduce mp4 video size