Kr0*_*r0e 12 mp4 ffmpeg transcoding video-streaming mpeg-dash
当管道mpegts到ffmpeg,它应该将其转换为mp4并管道转换为stdout时,ffmpeg说:"muxer不支持非可搜索输出".
经过大量的研究后,我得出的结论是mp4是一种不好的选择,可以通过搜索来进行各种动态转码.所以从本质上说:MP4不能通过ffmpeg进行管道传输,这是有道理的.
但我没有连续的mpegts流,我有5秒钟的块.所以它真的就像:
我需要这些用于HTML5 MediaSource的mp4块,碎片没有问题,我使用mp4box.js,它就像一个魅力.
问题:
本质上:我可以(不知何故)与ffmpeg交互而不使用文件吗?我目前的解决方案适用于文件和轮询新的块,这是丑陋的.
如果您对我的ffmpeg命令感兴趣,请告诉我.
aer*_*tal 14
既然您提到了碎片,那么您可以启用它movflags.从每个关键帧开始的片段示例:
ffmpeg -i segment.ts -c copy -movflags frag_keyframe+empty_moov -f mp4 -
Run Code Online (Sandbox Code Playgroud)
具有空moov原子意味着它不需要寻找并因此与管道一起工作.
如果您可以忍受没有真正的mp4格式,那么使用ismv对我来说实际上比手动调整movflags. 根据ffmpeg 格式文档,ismv格式类似于mp4,但自动调整movflags流式传输并在我看来做得更好。
测试:Firefox、Chrome、VLC
ffmpeg -i input.mp4 -f ismv -
Run Code Online (Sandbox Code Playgroud)
遗憾的是,由于 twitter 的视频上传验证非常严格并且要求我想象的是最常见的格式,因此该命令和aergistal 的答案都没有创建兼容上传到 twitter 的视频,截至 20 年 12 月 19 日mp4。所以到目前为止,我仍然必须使用ffmpeg直接输出到文件而不是stdout允许 twitter 视频上传。但我很想知道是否有人想出了解决这个问题的方法!
| 归档时间: |
|
| 查看次数: |
7600 次 |
| 最近记录: |