我希望通过VLC流式传输到Youtube并输入以下命令字符串:
cvlc -vv screen:// --live-caching=0 --screen-fps=30 --screen-width=1920 --screen-height=1080 --sout='#transcode{vcodec=h264,scale=Auto,width=1920,height=1080,acodec=mp3,ab=128,channels=2,samplerate=44100}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://a.rtmp.youtube.com/live2/xxxxxxxxxxx}'
如果我将其替换 screen:// ..
为视频文件,则流将成功上传到Youtube。
但是我不知道为什么它不会投射屏幕。YouTube简要显示了一个连接,但没有图像。该流不会被VLC中断,并且会显示上传继续进行,但YT不会对其进行处理。任何帮助,将不胜感激。
作为记录,我能够在VLC中脱机查看屏幕而无需流式传输。
我收到一个特别明显的错误:
core mux warning: late buffer for mux input (repeated while streaming)
但是在上传视频的情况下也会发生这种情况,但这似乎没有引起问题。
记录
下面是我尝试设置HTTP服务器流式传输桌面并同时在VLC中播放时的日志。我确实得到了图像,但是只有一个静态图像,即流的第一帧。
它告诉我很多我的电脑运行缓慢,但是它是Corei5,VLC进程仅占用9%的剩余空间。保存到文件工作正常。
注意
我有两个监视器。我不知道这可能是个问题。
更新资料
我通过使用增加缓冲区来解决丢帧的问题live-caching=2500
。现在,它可以在本地HTTP服务器上正常工作,但在YT上仍然不能正常工作。
#transcode{vcodec=h264,scale=Auto,width=1920,height=1080
,因为我得到的是您以大分辨率实时转码流,请尝试输出较小尺寸的流640-480