Как я могу скачать потоковое видео по протоколу RTMP? Из Гарвардского расширения, более конкретно
У меня были проблемы с загрузкой видео лекций из Гарвардской школы расширения. Я надеялся, что смогу взять CS171, но мне пришлось потратить очень много времени в ожидании бесконечной буферизации. Поэтому я хочу найти способ загрузить лекции и посмотреть их на месте.
Поэтому я попытался просмотреть исходный код страницы (например, первую лекцию) и обнаружил, что FlashViewer связан с URL-адресом XML. Я перешел по ссылке и обнаружил, что между тегами "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'.
Я не уверен, что это значит...
Я также пробовал rtmpdump, приобретенный через apt-get. И когда я бегу
$ rtmpdump -r rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872/L01/22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 -o lecture1.mp4
я получил
RTMPDump v2.4 (c) 2010 год Степанчук Андрей, Говард Чу, команда 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 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 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 файл /ts:output.mpg vlc:// выход
с
VLC media player 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/ подпрыгивать / mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4. Проверьте журнал для деталей. [0x7f6f28002a08] idummy demux: команда `quit'
в ответ.
Я также пробовал скачать Orbit на Windows с нулевой радостью. Загрузка даже не началась!
Кто-нибудь скажет мне, почему так сложно скачивать такие файлы и что означают эти сообщения об ошибках? И есть ли способ, которым я могу смотреть эти лекции на местном уровне?
6 ответов
Используйте RtmpSrv. Это связано с rtmpdmp v.21 и далее:
Начиная с версии 2.1 есть две дополнительные серверные программы, rtmpsrv и rtmpsuck.
rtmpsrv - заглушка для сервера; он регистрирует параметры подключения и воспроизведения с обычного клиента, который подключается к нему. Затем он вызывает rtmpdump с этими параметрами, чтобы получить поток.
использование
rtmpdump -r rtmp://flash.dce.harvard.edu/bounce -C B:0 -C Z: \ -C S:/2012/02/22872/L01/22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 \ -C S:BounceAPI3.0 -C N:0,000000 -C S:mp4 \ -y mp4:2012/02/22872/L01/22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 \ -o a.flv RTMPDump v2.4-84-gdd57cd0 (c) 2010 год Степанчук Андрей, Говард Чу, команда Flvstreamer; лицензия: GPL Подключение... ИНФОРМАЦИЯ: Подключено... Начальная загрузка в: 0,000 кБ [...] 3322,127 кБ / 22,03 с (0,3%)
-r
- URL-адрес сервера RTMP. Найдите URL в пакете "connect". Напримерconnect('22773_VOD_HOP_NEW_2013')
означает, что ваш URL будетrtmp://serveraddress/22773_VOD_HOP_NEW_2013
-y
- расположение файла и введите в rtmp-сервер вашего видеофайла. Нашел его в пакете "play".-o
- имя выходного файла. Если это поток mp4, используйте расширение.mp4.
Используйте проигрыватель VLC для загрузки rtmp
поток:
- Шаг: выбрал
Media > Convert/Save
(или используйте сочетание клавиш Ctrl + R) - Шаг: выберите вкладку
Network
Шаг: введите URI потока rmtp
- Шаг: выбрал
Convert
и введите целевой путь / файл - Шаг: иди!
Что касается законности, это будет зависеть от ограничений, установленных владельцем. Но я бы предположил, что если бы это было только для личного использования, не было бы большой проблемы.
Что касается их загрузки, вы должны иметь возможность использовать VLC. Я никогда не пробовал сам, но в нем указана поддержка протокола RTMP, и его обычная опция конвертирования / сохранения должна быть в состоянии сохранить Steam в файл без каких-либо проблем.
Я имел успех с некоторыми потоками RTMP, используя программу youtube-dl.
Это приложение командной строки, которое будет загружаться в ваш текущий каталог, если вы не передадите ему аргументы. С потоками RTMP я обычно просто передаю URL страницы, а не пытаюсь найти RTMP URI.
youtube-dl "http://domain/page-with-stream"
Будучи студентом Гарвардского университета, я привык смотреть лекции в 2 раза или выше (привычка от CS50), и беспокоит то, что у расширенных школьных видео эта функция отсутствует.
Я обнаружил, что Jaksta (вы можете найти бесплатную копию в Интернете где-то) довольно успешно загружает потоковые лекции в FLV
формат, который я затем могу смотреть в плеере VLC на любой скорости, насколько душе угодно.
После загрузки первой лекции я могу загрузить следующие лекции на отдельном рабочем столе, пока смотрю первую. Я нашел это решение после того, как просмотрел все эти форумы и не совсем понял, как реализовать в Mac OS решение RMTP, которое было опубликовано выше.
Потоковое видео Downloader может сделать это - я использую его, чтобы сохранить все почки видео. Просто попробовал это с вашей лекцией Гарварда, и это сработало. Это не бесплатная программа, но она может это сделать.
Возможно, вам придется обновить веб-страницу пару раз, хотя видео будет снято.
Раскрытие: я был частью команды разработчиков для этого продукта.