【问题标题】:Create mp4 file from raw h264 using a pipe instead of files使用管道而不是文件从原始 h264 创建 mp4 文件
【发布时间】:2019-09-05 23:46:11
【问题描述】:

我有一个原始 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 编写代码还是有现成的解决方案?

H.264 muxed to MP4 using libavformat not playing back

谢谢!

【问题讨论】:

  • 只需使用“-i -”
  • 这适用于输入,对于输出,ffmpeg 似乎无法写入管道,因为它需要寻找输出。 '复用器不支持不可搜索的输出'。
  • 正确,mp4 不能通过管道写入。使用 flv 或 mkv 之类的格式即可。
  • 使用其他格式的好主意。该命令行似乎用作过滤器。 '猫 A4DA2229AEBD.h264 | ffmpeg -i - -f h264 -vcodec libtheora -f ogv -> x.ogv'

标签: ffmpeg mp4 h.264 libavcodec


【解决方案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

【讨论】:

  • 谢谢!这比我用来制作 .ogv 文件的过滤器快得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-04
相关资源
最近更新 更多