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

时间:2019-04-15 23:33:21

标签: ffmpeg mp4 h.264 libavcodec

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

  

打开-a VLC文件.h264

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

  

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

但是我真正想做的是:

  

cat file.h264 | ffmpeg> file.mp4

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

一种替代解决方案是一种在网页中显示原始h264的方法,而无需先将其转换为mp4。

输入正在逐帧输入,前四个字节为0,0,0,1。我的理解是,这种h264 Annex B格式。

我对视频格式一无所知,不胜感激。

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

H.264 muxed to MP4 using libavformat not playing back

谢谢!

1 个答案:

答案 0 :(得分:1)

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

type test.h264 | ffmpeg -i - -vcodec copy -f mp4 -movflags frag_keyframe+empty_moov pipe:1 > test_frag.mp4

您应该能够找到很多JavaScript代码来播放零碎的MP4。

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