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

mar*_*rca 7 mp4 google-chrome ffmpeg 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`
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

bla*_*lah 17

我认为你的问题是像素格式.

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

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

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

  • 经过一夜的挣扎,这个"-pix_fmt"旗帜帮助了我.非常感谢这个帖子.阅读此内容的人,以及Google Chrome浏览器无法播放编码的MP4文件时遇到问题 - 这在2013年仍然是一个问题. (3认同)