我需要将视频流到stdout,然后再次从stdin读取该流以显示它。最后,将有一个应用程序在中间处理网络,但现在我想直接测试它。尝试时,视频计时器工作,但屏幕保持黑色。

vlc -I dummy video.mp4 --sout '#standard{access=file,mux=ogg,dst=-}' | vlc -

我也尝试过gstreamer,但是我还不能成功地传输视频。
gst-launch-1.0 filesrc location=video.mp4 ! fdsink | gst-launch-1.0 fdsrc fd=0 ! decodebin ! autovideosink

有人知道怎么做吗?
提前谢谢!

最佳答案

我不得不在VLC选项上花很多功夫来实现这一点,甚至不确定是否有额外的/无用的/错误的设置(比如额外的详细;-)
我得到了VLC's wiki的帮助。
在接收端:

vlc rtp://192.168.56.101

在发送端:
vlc -vvv video.mp4 --sout '#duplicate{dst=display,dst="transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:rtp{mux=ts,dst=192.168.56.101,sdp=sap,name="TestStream"}"}'

注:
您将看到2个视频输出,这是由于流选项中的“duplicate”参数(值--sout
不要忘记在两个命令中都添加工作站的IP地址

关于linux - 如何通过stdin/stdout流mp4视频?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56165750/

10-12 17:23