我正在尝试使用 youtube-dl 将 YouTube NASA ISS 直播流(或任何 YouTube 流)转码为 rtmp 或 rtsp。我想我有正确的命令,但由于某种原因,我无法连接到我新转码的流。
这是我正在使用的命令:
youtube-dl -f best "https://youtu.be/RtU_mdL2vBM" -o - | ffmpeg -re -f mp4 -i pipe:0 -ar 44100 -f flv rtmp://localhost:1935/test/test'
Run Code Online (Sandbox Code Playgroud)
该命令似乎有效,我看到有关从 YouTube 打开的流文件的信息,但是当我使用下面的命令时,vlc 报告它无法连接到流。
vlc rtmp://localhost:1935/test/test
Run Code Online (Sandbox Code Playgroud)
如果我使用下一个命令,流将在 vlc 中正确播放,并且我可以看到 youtube-dl 部分正在运行。
youtube-dl -o - "https://youtu.be/RtU_mdL2vBM" | vlc -
Run Code Online (Sandbox Code Playgroud)
或者干脆只是
vlc -vvv https://youtu.be/RtU_mdL2vBM
Run Code Online (Sandbox Code Playgroud)
所以似乎 ffmpeg 是问题所在,或者我可能需要在转码和我想要的目的地(vlc 或 TouchDesigner)之间使用流媒体服务器。我也试过使用 vlc 代替 ffmpeg/youtube-dl:
vlc -vvv https://youtu.be/RtU_mdL2vBM --sout '#transcode{vcodec=h264,vb=800,acodec=none}:rtp{sdp=rtsp://:554/test}'
Run Code Online (Sandbox Code Playgroud)
或者
youtube-dl -o - "https://youtu.be/RtU_mdL2vBM" | vlc - --sout '#transcode{vcodec=h264,vb=800,acodec=none}:rtp{sdp=rtsp://:554/test}'
Run Code Online (Sandbox Code Playgroud)
并查看
vlc rtsp://localhost:554/test
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法使这两种方法中的任何一种起作用。如果我尝试像这样复制它,我什至看不到 …