插入关键帧到M4V / MP4在特定时间(Insert keyframe into m4v/mp4

2019-10-31 07:03发布

我对教育计划(书面electronjs框架)播放影片,跳过在视频预置点作为一个陪伴JSON文件中定义。 有时候,有一个跳跃后显著的滞后性,而这样的回答表明,滞后是因为罕见的关键帧的存在。

假设这是正确的,我想在插入mp4文件中的确切点关键帧,在那里我知道玩家会跳过。 然而,这些视频文件都已经相当大,所以我不希望降低关键帧间隔,从而使文件更大。 我只需要强制关键帧一小撮整个文件。

我希望能够传递一个参数(与ffmpeg ,例如),在这我要强制关键帧的时间。 最好,我想这样做没有重新编码整个视频(就像这个悬而未决的问题 ),但如果我要重新编码视频,我可以做到这一点。

Answer 1:

您可以使用的ffmpeg插入你想让他们使用关键帧-force_key_frames选项。

例如:

./ffmpeg -i input.mp4 -c:a copy -c:v copy -force_key_frames 0:05:00,0:10:00 out.mp4

会把尽量靠近5和10秒大关,因为它可以一个关键帧。 的时间值可以是为hh:mm:ss格式,或者只是秒(单值,没有冒号)。

您可以检查是否要将其使用有插入帧:

./ffprobe -select_streams v:0 -skip_frame nokey -show_entries frame=pkt_pts_time out.mp4


文章来源: Insert keyframe into m4v/mp4 at specific times