我一直无法下载哈佛扩展学院的视频讲座。我原本希望可以选修 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
我明白了
RTMPDump v2.4 (c)2010 Andrej Stepanchuk、Howard Chu、Flvstreamer 团队;许可证:GPL 正在连接... 信息:已连接... 错误:关闭连接: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 团队构建 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 dummy vlc -I dummy 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,但毫无进展。下载根本就无法启动!
有人能告诉我为什么下载这类文件这么难吗?这些错误信息是什么意思?我有什么办法可以在本地观看这些讲座吗?
答案1
使用 RtmpSrv
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 一个.flv RTMPDump v2.4-84-gdd57cd0 (c)2010 Andrej Stepanchuk、Howard Chu、Flvstreamer 团队;许可证:GPL 正在连接... 信息:已连接... 开始下载:0.000 kB [...] 3322.127 kB / 22.03 秒 (0.3%)
编辑:请不要再问我关于这个答案的问题。我多年前就被 RTMP 社区开除了,不想再重蹈覆辙。这个答案仅因历史原因而存在,无法删除。
答案2
使用VLC 播放器下载rtmp
流:
- 步骤:选择
Media > Convert/Save
(或使用快捷键Ctrl+ R) - 步骤:选择标签
Network
步骤:输入 rmtp 流 URI
- 步骤:选择
Convert
并输入目标路径/文件 - 步骤:开始!
答案3
至于合法性,则取决于所有者设定的限制。但我认为,如果仅供个人使用,就不会有太大问题。
关于下载,你应该能够使用甚高频液晶。我自己还没有尝试过,但它列出了对 RTMP 协议的支持,并且它的常规转换/保存选项应该能够将 steam 保存到文件中而不会出现任何问题。