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

时间:2014-10-22 15:05:48

标签: 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

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用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)。您可能必须执行其他处理才能获得所需内容。