如何下载具有rtmp协议的流视频?从哈佛扩展,更具体地说


24

我在下载哈佛扩展学校的视频讲座时遇到了麻烦。我希望可以使用CS171,但是我发现自己不得不花费大量时间等待无休止的缓冲。因此,我希望找到一种下载讲座并在本地观看的方法。

因此,我尝试查看页面的源代码(以第一堂课为例),我发现FlashViewer与XML URL链接。我点击了链接,发现“ rtmp”标签之间是指向mp4文件的链接:“ rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124 -L01-1-h264-av1248-16x9-852x480.mp4”,我相信就是这样,我正在寻找的文件。

然后出现下载问题。我进行了一些广泛的搜索,并尝试了多次。没有工作。

我尝试的一种方式是跑步

    $ wget rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4

在我的Ubuntu上,响应为

    rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4:不支持的方案“ rtmp”。

我不确定这意味着什么...

我还尝试了通过apt-get获得的rtmpdump。当我跑步时

    $ rtmpdump -r rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 -o Lesson1.mp4

我懂了

    RTMP转储v2.4
    (c)2010年Flvstreamer队的Andrej Stepanchuk,Howard Chu;执照:GPL
    连接中...
    INFO:已连接...
    错误:正在关闭连接:NetStream.Play.Failed

我不知道NetStrem.Play.Failed是什么意思...

然后我遇到了堆栈溢出问题,分别提出了使用mplayer和vlc 的建议

    $ mplayer -dumpstream rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4

回来了

    MPlayer SVN R34540(Ubuntu),使用gcc-4.7(C)构建2000-2012 MPlayer Team
    mplayer:无法连接到套接字
    mplayer:没有这样的文件或目录
    无法打开LIRC支持。您将无法使用遥控器。

    播放rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4。
    libavformat版本53.21.0(外部)
    标头版本53.19.0不匹配
    使用网络协议而不进行全局网络初始化。请使用avformat_network_init(),稍后将强制使用。
    使用网络协议而不进行全局网络初始化。请使用avformat_network_init(),稍后将强制使用。
    [rtmp @ 0x7f3de47abc00]服务器错误:流2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4的读取访问被拒绝。
    无法打开rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4。


    正在退出...(文件末尾)

    $ vlc -I虚拟vlc -I虚拟rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 --sout file / ts:output.mpg vlc:// quit

    VLC媒体播放器2.0.4 Twoflower(修订版2.0.3-289-g6e6100a)
    [0xf0aed8]虚拟接口:使用虚拟接口模块...
    使用网络协议而不进行全局网络初始化。请使用avformat_network_init(),稍后将强制使用。
    使用网络协议而不进行全局网络初始化。请使用avformat_network_init(),稍后将强制使用。
    [rtmp @ 0x7f6f28010a20]服务器错误:流2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4的读取访问被拒绝。
    [0x7f6f28002d38] access_avio访问错误:无法打开rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480。 mp4:输入/输出错误
    [0x7f6f20000b28]主要输入错误:打开了rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480。 mp4'失败
    [0x7f6f20000b28]主要输入错误:您的输入无法打开
    [0x7f6f20000b28]主要输入错误:VLC无法打开MRL'rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248 -16x9-852x480.mp4'。检查日志以获取详细信息。
    [0x7f6f28002a08] idummy demux:命令“退出”

作为回应。

我也尝试过在Windows上以零欢乐度进行Orbit Download。下载甚至无法开始!

有人会很好地告诉我为什么下载这种文件如此困难,以及这些错误消息是什么意思吗?我有什么办法可以在本地观看这些讲座?


只要你不分发视频,你应该是公平的下载恕我直言
CSᵠ

你在这里检查响应:stackoverflow.com/questions/4808322/...
d33pika

@godka哈哈,只要我实际上可以下载它;

@ d33pika实际上不。似乎rtmpdump仍然是强大的工具。我认为是我未能对其进行调整的标记并没有完成工作

Answers:


15

使用RtmpSrv。它与rtmpdmp v.21及更高版本捆绑在一起:

从2.1开始,有两个附加的服务器程序rtmpsrv和rtmpsuck。

rtmpsrv是服务器的存根;它从连接到它的常规客户端记录连接和播放参数。然后,它将使用这些参数调用rtmpdump以检索流。

用法

rtmpdump -r rtmp://flash.dce.harvard.edu/bounce -CB:0 -CZ:\
-CS:/2012/02/22872/L01/22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 \
-CS:BounceAPI3.0 -CN:0.000000 -CS:mp4 \
-y mp4:2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 \
-o a.flv
RTMP转储v2.4-84-gdd57cd0
(c)2010年Flvstreamer队的Andrej Stepanchuk,Howard Chu;执照:GPL
连接中...
INFO:已连接...
开始下载于:0.000 kB
[...]
3322.127 kB / 22.03秒(0.3%)
  • -r-rtmp服务器的网址。在“连接”数据包中找到该网址。例如,connect('22773_VOD_HOP_NEW_2013')表示您的网址为rtmp://serveraddress/22773_VOD_HOP_NEW_2013

  • -y-文件位置,然后输入视频文件的rtmp服务器。在“播放”包中找到它。

  • -o-输出文件名。如果是mp4流,请使用.mp4扩展名。


你是我的英雄!我都对rtmpdump命令的-C标志感到困扰。(我仍然不明白我应该如何调整它,但是它正在工作!)
alxyzc 2013年

4
请仔细说明所有命令行选项的用途,因为我不太清楚
Ivo Flipse 2013年

11

使用VLC播放器下载rtmp流:

  1. 步骤:选择Media > Convert/Save(或使用快捷键Ctrl+ R
  2. 步骤:选择选项卡 Network
  3. 步骤:输入rmtp流URI

    在此处输入图片说明

  4. 步骤:选择Convert并输入目标路径/文件
  5. 步骤:走!

1

关于合法性,这取决于所有者设定的限制。但是我想假设它只是供个人使用,不会有太大的问题。

关于下载它们,您应该可以使用VLC。我自己从未尝试过,但是它列出了对RTMP协议的支持,并且它的常规convert / save选项应该能够将流保存到文件中而没有任何问题。


我实际上已经尝试过了,结果VLC对我大喊大叫:Your input can't be opened: VLC is unable to open the MRL 'rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872/L01/22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4'. Check the log for details.btw,如何检查日志?
alxyzc

@alxyzc工具>消息。您可能需要增加详细程度才能查看所有调试消息。
bdr9

1

我已经使用youtube-dl程序成功处理了一些RTMP流。

这是一个命令行应用程序,如果您不传递任何参数,它将下载到当前目录。对于RTMP流,我通常只将页面URL传递给它,而不是尝试定位RTMP URI。

youtube-dl "http://domain/page-with-stream"

0

Streaming Video Downloader可以做到-我用它来保存视频的所有绑架。只需在您的Harward讲座上尝试一下,它就可以工作。它不是免费软件,但可以做到。

您可能需要几次刷新网页才能提取视频。

披露:我是该产品开发团队的一员。


0

作为哈佛大学的本科生,我习惯以2倍或更高的观看率(CS50的一种习惯)观看讲座,而扩展学校的视频不具有此功能令人不安。

我发现Jaksta(您可能在网上可以找到免费的副本)非常成功地下载了FLV格式的流媒体讲座,然后我可以在VLC播放器中以我所能接受的任何速度观看。

一旦下载了第一堂课,我就可以在观看第一堂课的同时在单独的桌面上下载下一堂课。在仔细研究了所有这些论坛之后,我才真正找到了该解决方案,但并没有真正理解如何在Mac OS上实施上面发布的RMTP解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.