通过具有有限 "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。
我有一个视频容器 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。