FFMPEG转换后的mp4文件无法在Firefox和chrome中播放



我已经使用FFMPEG命令将flv视频文件转换为mp4,并使用html5视频标签并在浏览器中播放视频。但是在使用ffmpeg将视频转换为mp4后,它不会在Firefox和chrome浏览器中播放。它显示一条错误消息,指出"找不到具有支持的格式和 MIME 类型的视频"。我已经添加了下面的代码,请帮忙。

cmd /C ffmpeg -i INPUT_FILE_PATH -y -ar 22050 -ab 512 -b 800k -f mp4 -s 514*362 OUTPUT_FILE.mp4"

这就是你需要的。我最近发现自己在与同样的问题作斗争。

将此添加到您的命令中:

-pix_fmt yuv420p

如果您不指定pix_fmt则默认为 yuv444p,这似乎与当前浏览器不兼容。

我成功测试的完整命令是:

ffmpeg -y -i "INPUT-FILE" -c:v libx264 -preset slow -crf 22 -pix_fmt yuv420p -c:a libvo_aacenc -b:a 128k "OUTPUT-FILE"

将您的输入、输出路径放在引号内,然后尝试开始。在当前的IE,Firefox和Chrome中播放。我正在使用内置的 aac 编码器进行音频。

你使用的是最新版本的 Firefox 和 Chrome 吗?

您是否在系统和浏览器上安装了必要的编解码器?

旧版本的浏览器在显示多媒体或MIME内容时会遇到问题。不正确或旧的编解码器也会导致问题。

我对命令行所做的更改:

  • 我已经明确指定了音频编解码器,因此它是 AAC-LC。
  • 添加"-strict -2"以使用实验性AAC-LC编解码器。

这在Firefox和Chrome中都对我有用。

ffmpeg -y -i "INPUT" -ar 22050 -ab 512 -b 800k -f mp4 -s 514*362 -strict -2 -c:a aac "OUTPUT.mp4"

我认为你的编码问题不是FFMPEG或HTML5。它位于您正在使用的命令和库中。您应该使用"libx264"库对HTML5的MP4视频进行编码。

使用的正确命令应该是。

ffmpeg -i input.mov 
-acodec libfaac -ab 96k 
-vcodec libx264 -vpre slower -vpre main 
-level 21 -refs 2 -b 345k -bt 345k 
-threads 0 -s 640x360 output.mp4

为了方便复制粘贴

ffmpeg -i input.mov -acodec libfaac -ab 96k -vcodec libx264 -vpre slower -vpre main -level 21 -refs 2 -b 345k -bt 345k -threads 0 -s 640x360 output.mp4

如果您碰巧错过了x264编解码器,则可以安装Zeranoe版本。请参阅此 SO 页面。[ x264 编解码器的 FFmpeg 安装 ]

更多编码指令请参见 [ https://trac.ffmpeg.org/wiki/x264EncodingGuide ]

根据@Unrealist的回答,这似乎是视频编解码器兼容性的问题。您需要检查浏览器的视频格式支持,然后在FFMPEG中选择合适的音频和视频编解码器:

HTML5视频编解码器浏览器支持图表

我遇到了类似的问题 - 当从一个集合中组合 png/mp3 时,一切都很好,但是组合另一个集合中的 jpg/mp3 无法在浏览器中播放,但在 vlc 中一切正常。我已经发现 -pix_fmt 是问题所在,它在重新组合 png 集合时有效,但在重新组合 jpg 集合时不起作用,除非也使用 -vf 比例。

检查是否

添加到您的服务器中的 MIMe 类型支持,这是您出现的问题,因为显示错误 ' 它显示错误,指出"找不到具有支持的格式和 MIME 类型的视频"。至于您的信息,不支持在IIS 7中添加的MP4 MIME类型,您必须通过以给定的方式更改其web.config文件来添加。

<configuration>
   <system.webServer>
      <staticContent>
         <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
      </staticContent>
   </system.webServer>
</configuration>

希望这能深入了解您的问题。

最新更新