我正在创建一个CMS,用户可以上传视频以便在页面上显示。
上传视频时,我创建了一个后台任务(使用Hangfire)将视频转换为MP4,OGV和WEBM。
我在开发机器上运行最新版本的Firefox和Chrome。根据{{3}},这些浏览器应完全支持H.264(MP4),Theora(OGG)和VP8 / VP9(WEBM)。
所有内容似乎都在Firefox中正常运行,并在本地使用VLC Media Player。但是,使用Chrome时,当我尝试将现有视频(带有H.264视频和MPEG-2/4音频的MP4)转换为HTML5视频所需的三种格式时,我的结果会大不相同。
使用Wikipedia和MediaToolkit,生成的MP4和OGG / OGV文件无法在Chrome中播放(尽管WEBM正在运行)。这是我的实施:
// MediaToolkit
using (var engine = new Engine())
{
engine.Convert(new MediaFile("C:\SourceFile.mp4"), new MediaFile("C:\DestinationFile.mp4"));
}
// NReco.VideoConverter
var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
ffMpeg.ConvertMedia("C:\SourceFile.mp4", "C:\DestinationFile.mp4", Format.mp4);
尽管看起来具有相同的编解码器,但得到的mp4在Chrome中不起作用。以下是原始文件和转换文件的详细信息:
帧率:29.97 fps
AUDIO编解码器:MPEG-2/4音频
如您所见,输入和输出文件看起来完全相同。但是,输出在Chrome中无效。
为什么这个过程如此困难?我错过了一个简单的解决方案吗?