小编Mat*_*ter的帖子

使用 youtube-dl 和 ffmpeg(或 vlc)将 YouTube 直播流转码为 rtsp rtmp udp rtp

我正在尝试使用 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)

不幸的是,我无法使这两种方法中的任何一种起作用。如果我尝试像这样复制它,我什至看不到 …

youtube ffmpeg vlc rtsp youtube-dl

5
推荐指数
1
解决办法
8031
查看次数

标签 统计

ffmpeg ×1

rtsp ×1

vlc ×1

youtube ×1

youtube-dl ×1