这个用 libx264 制作的视频有什么问题?

What is wrong with this video produced with libx264?

我一直在尝试让 libx264(版本 142)的 c++ 包装器正常工作。我能够使用 x264 制作视频,并且在编码过程中没有错误。大多数标准视频播放器(QuickTime、VLC...)无法读取它但不会显示任何错误。但是,mplayer 能够读取它。

我无法确定它出了什么问题(损坏 header?数据损坏?)。

视频可在此处获取:https://www.dropbox.com/s/godnip85pezdi89/test_h264.mp4?dl=0

我用来编码视频的 libx264 的 class 在这里:https://gist.github.com/anonymous/4eb46b838fcf84ed02aa

如果能帮助我找出我做错了什么,将不胜感激。

谢谢!

您的视频文件是原始的基本 H.264 流(附件 B),而不是您的文件名所示的 MP4。如果不混合到 MP4/MKV 等容器之一,大多数玩家无法播放原始 H.264 流。您可以使用 MKVToolnix (MKV)、L-SMASH (MP4) 或 GPAC/MP4Box (MP4) 来混合您的流。

谢谢!我确实能够使用 ffmpeg 将原始 h264 多路复用到 mp4 容器中:

ffmpeg -i test_h264.mp4 -vcodec copy -acodec copy muxed_video.mp4