ffmpeg 截取关键帧开头的视频片段

使用如下命令获取关键帧时间点

ffprobe -select_streams v -show_frames -v quiet LG.4K.DEMO_Chess_HEVC_60FPS_10bit_HDR.ts -unit | grep key_frame=1 -A 3

获取到如下时间点

key_frame=1
pkt_pts=96005
pkt_pts_time=1.066722 s
pkt_dts=96005
--
key_frame=1
pkt_pts=186095
pkt_pts_time=2.067722 s
pkt_dts=186095
--
key_frame=1
pkt_pts=276185
pkt_pts_time=3.068722 s
pkt_dts=276185
--
key_frame=1
pkt_pts=366275
pkt_pts_time=4.069722 s
pkt_dts=366275
--
key_frame=1
pkt_pts=456365
pkt_pts_time=5.070722 s
pkt_dts=456365
--
key_frame=1
pkt_pts=546455
pkt_pts_time=6.071722 s
pkt_dts=546455
--
key_frame=1
pkt_pts=636545
pkt_pts_time=7.072722 s
pkt_dts=636545
--
key_frame=1
pkt_pts=656064
pkt_pts_time=7.289600 s
pkt_dts=656064

使用截取命令进行截取。

ffmpeg -ss 00:00:07.072 -i LG.4K.DEMO_Chess_HEVC_60FPS_10bit_HDR.ts -vcodec copy -acodec copy LG.4K.DEMO_Chess_HEVC_60FPS_10bit_HDR.no_blackstart.ts