像素格式为yuvj420p的mp4将无法在Chrome 17中播放,但在Safari,IE等中播放

时间:2012-03-06 21:10:13

标签: google-chrome ffmpeg mp4 x264

文件来自尼康D3s(mov),用ffmpeg转换为mp4。 所有其他文件(avi,flv,mp4等)的工作没有问题

请参阅文件:http://shootitlive.s3.amazonaws.com/output.mp4 (当从不同的主机提供时,Chrome中的相同非工作结果,并且始终在Safari和Firefox,Chromium中使用闪存)

  

/ usr / local / bin / ffmpeg -i nonworking.MOV -acodec libfaac -ab 128k -vcodec libx264 -preset slow -crf 30 -threads 0 -s 768x576 -sepect 1.33333333333 -ar 48000 output.mp4

找不到任何奇怪的东西(但不知道该找什么):

ffmpeg -v 5 -i filename -f null - 2>error.log`

有什么想法吗?

3 个答案:

答案 0 :(得分:17)

我认为您的问题是像素格式。

来自your Chrome bug report,工作视频(working.mp4)有pix_fmt = yuv420p。非工作视频(qt_output.mp4)具有pix_fmt = yuv j 420p。在我的测试中,将有问题的视频转换为yuv会让它发挥作用。将工作视频转换为yuvj使其无法播放。

我不确定为什么我对像素格式的分析与Chrome浏览器错误报告中的Alek不同,但这对我有所帮助。

尝试将-pix_fmt yuv420p添加到您的ffmpeg命令。

答案 1 :(得分:3)

请阅读chromium bug #117368,其中开发人员解释说不会很快支持yuvj420p:

  

实际上,铬不支持yuvj420p。

     

通常我们不支持使用不广泛的视频格式(或编解码器),因为支持负担(维护代码质量,修复错误,安全评审等)与用户利益不成比例(相对于我们可以花费时间/精力的其他一切。

     

关闭为WorkingAsIntended。如果格式变得更受欢迎,我们可以重新考虑包括对它的支持。   如果我在这里遇到另一个问题,请重新开启。

答案 2 :(得分:-1)

这里没有什么可以做的,这是一个链接到原始文件的浏览器问题。 您确实需要在HTML文档中使用HTML5 / FLASH / JS或其他视频播放器。

这适用于所有支持HTML5的浏览器 :

<!DOCTYPE html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <video height="250" width="320">
        <source src="http://shootitlive.s3.amazonaws.com/output.mp4" type="video/mp4" />
    </video>
</body>