如何使用 rtmp 协议下载流媒体视频?来自 Harvard Extension,更具体地说

如何使用 rtmp 协议下载流媒体视频?来自 Harvard Extension,更具体地说

我一直无法下载哈佛扩展学院的视频讲座。我原本希望可以选修 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流:

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

    在此处输入图片描述

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

答案3

至于合法性,则取决于所有者设定的限制。但我认为,如果仅供个人使用,就不会有太大问题。

关于下载,你应该能够使用甚高频液晶。我自己还没有尝试过,但它列出了对 RTMP 协议的支持,并且它的常规转换/保存选项应该能够将 steam 保存到文件中而不会出现任何问题。

答案4

流媒体视频下载器可以做到——我用它来保存各种视频。刚刚在你的哈佛讲座上试了一下,它成功了。不是免费软件但它能够做到。

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

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

相关内容