在Encode-time上强迫自定义H.264内部框架(键框)?
-
25-10-2019 - |
题
我有一个视频序列,我想在播放时跳过特定的帧(我的播放器是使用iOS中的Avplayer实现的,但这是偶然的)。由于这些帧会以不可预测的间隔掉落,因此我无法在大多数视频编码器中使用标准的“每个n帧/秒”功能。但是,我确实知道目标框架。
为了尽可能高效地进行此跳过,我需要强迫目标框架在编码时为i框架。理想情况下,在某种GUI中可以让我擦到框架上,将其标记为钥匙扣,然后(重新)编码我的视频。
如果没有这样的工具,我有这种感觉可以通过使用libavcodec滚动的自定义编码器来完成,但是如果GUI ISN,我宁愿使用更高级别(最好是可脚本的)工具来完成这项工作可能。这是FFMPEG或Mencoder可以弯腰的任务吗?
有人有这样做的技术吗?同样,由于我对H.264编解码器的一些根本无知,这完全有可能是不可能的任务。如果是这样,请让我正确。
解决方案 2
回答了我自己的问题:可以在Apple压缩机中设置自定义压缩密钥帧。
压缩标记也称为手动压缩标记。这些是您可以添加到最终切割Pro序列(或在“压缩机预览”窗口中)的标记,以指示压缩机在压缩过程中何时应生成MPEG i-Frame。
资源.
其他提示
FFMPEG有一个 -force_key_frames
接受一系列任意时间戳以及指定帧的其他方法的选项。来自 文档:
-force_key_frames 0:05:00,...
您不能使用章节标记在各节之间跳跃吗?不是理想的解决方案,而是更容易实现。
不隶属于 StackOverflow