我们有许多已转换为 16:9 纵横比的 powerpoint 演示文稿,然后转换为具有“apple TV”720p 配置文件的 mp4“主视频”。这些PowerPoint演示文稿带有语音注释。所以本质上,我们展示一张幻灯片,然后让注释声音播放一会儿,然后转到下一张幻灯片,以此类推。生成的 mp4 主视频平均约为 900MB。
这是主视频的示例
输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自“input.mp4”: 元数据: 主要品牌:isom 次要版本:512 compatible_brands:isomiso2avc1mp41 创建时间:1970-01-01 00:00:00 编码器:Lavf52.104.0 时长:02:00:57.65,开始:0.000000,比特率:970 kb/s 流 #0:0(und):视频:h264(主)(avc1 / 0x31637661)、yuv420p、1280x720 [SAR 1:1 DAR 16:9]、836 kb/s、29.97 fps、29.97 tbr、30k tbn、59.94待定 元数据: 创建时间:1970-01-01 00:00:00 handler_name : 视频处理程序 流 #0:1(und):音频:aac (mp4a / 0x6134706D),44100 Hz,立体声,fltp,127 kb/s 元数据: 创建时间:1970-01-01 00:00:00 handler_name : SoundHandler
我们正试图让这些演示文稿在尽可能多的设备/浏览器上在网络上播放,包括一些不支持 HTML5 (IE7/IE8) 的设备/浏览器。我们缩小了我们选择的播放器 mediaElement 的范围,并从 powerpoint 演示文稿中提取了一些“提示点”,这些“提示点”标记了幻灯片的变化位置。我们还捕获了这些提示点的缩略图,这样我们现在就有了每张幻灯片的缩略图列表以及视频中特定幻灯片开始的相关提示点。
问题来了……由于主视频的尺寸很大,我们无法将主视频与我们的 mediaElement 播放器一起使用。我们确实需要将主视频转码为 mp4 和 ogv 以获得良好的设备/浏览器覆盖率。
我们似乎无法找到合适的转码策略来减小视频的大小。我们使用了许多 ffmpeg 设置并且能够减小大小,但是当我们这样做时,我们会损害跳转到特定提示点的能力。
它适用于原生执行 HTML5 视频的浏览器(Chrome 和 Firefox),但不适用于使用 mp4 文件且似乎与视频中关键帧的数量和频率密切相关的 mediaElement (IE7/IE8) 的 Flash 回退为了允许使用提示点进行干净的搜索和跳过。
看到我们谈论的视频只有幻灯片(实际上每个演示文稿大约 90 张静态图像)和一些声音,我们认为必须可以进行转码,使关键帧落在提示点或提示点附近,并且视频的大小可以大大减小,同时仍然允许平滑搜索和跳过。