使用管道而不是文件从原始 h264 创建 mp4 文件

Cha*_*rns 5 mp4 ffmpeg h.264 libavcodec

我有一个原始 h264 文件,可以在 Mac 上使用 VLC 显示:

打开-a VLC文件.h264

我可以使用命令行将其转换为 mp4

ffmpeg -f h264 -i file.h264 -c:v copy file.mp4

但我真正想做的是:

猫文件.h264 | ffmpeg > 文件.mp4

原因是输入是通过套接字传输的,我想将其转换并即时发送到 html 文件中的视频标签。

另一种解决方案是在网页中显示原始 h264,而不先将其转换为 mp4。

输入是逐帧输入的,前四个字节是 0,0,0,1。我的理解是这个h264附件B格式。

我对视频格式一无所知,我很高兴能指出一个方向来看看。

我应该像这个问题一样考虑使用 libavcodec 编写代码还是有现成的解决方案?

使用 libavformat 混合到 MP4 的 H.264 无法播放

谢谢!

Mar*_*ann 7

下面的命令行将创建一个碎片MP4(Windows cmd)

type test.h264 | ffmpeg -i - -vcodec copy -f mp4 -movflags frag_keyframe+empty_moov pipe:1 > test_frag.mp4
Run Code Online (Sandbox Code Playgroud)

您应该能够找到大量 JavaScript 代码来播放碎片 MP4。

例如: https: //github.com/chriswiggins/videojs-fmp4