通过具有有限 "channel" 带宽的命名 PIPE 流式传输视频

Streaming video over named PIPE with limited "channel" bandwidth

我有一个视频容器 vid.mp4,我想通过命名 PIPE 与 ffplay 一起播放,并且能够调整 "channel" 允许的最大带宽。按照我的做法:

1. 创建命名 PIPE:

mkfifo pipe_in

2. 借助pipe viewer将容器发送到有限带宽(150kB/s)的管道pv:

cat vid.mp4 | pv -L 150k > pipe_in

3. 播放视频 ffplay:

ffplay cache:./pipe_in

我的期望:立即观看视频,但考虑到带宽限制,速度很慢。

实际情况:只有当命令 2. 完成后视频才开始以正常速度显示 运行。

提前致谢!

您的视频需要预先安装 MOOV 框。

ffmpeg -i vid.mp4 -c copy -movflags +faststart newvid.mp4

现在,您应该可以使用

进行播放
ffplay ./pipe_in

如果您希望使用缓存协议,则需要设置缓存限制。

ffplay -read_ahead_limit 65K cache:./pipe_in

如果找不到该选项,请升级 ffplay。