文件来自尼康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`
有什么想法吗?
答案 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>