Як я можу завантажувати потокові відео з протоколом rtmp? Від Гарвардського розширення, точніше


24

У мене виникли проблеми із завантаженням відео лекцій з Гарвардської школи розширень. Я сподівався, що зможу взяти 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 preda1.1.4

я отримав

    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 манекен vlc -I манекен 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 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] Помилка доступу_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 не може відкрити rtmp MRL: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248 -16x9-852x480.mp4 '. Перевірте журнал на деталі.
    [0x7f6f28002a08] idummy demux: команда `вийти '

у відповідь.

Я також пробував Orbit Download у Windows з нульовою радістю. Завантаження навіть не розпочнеться!

Хтось добре скаже мені, чому так важко завантажувати такі файли і що означають ці повідомлення про помилки? І чи є спосіб я дивитись ці лекції на місцях?


доки ви не розповсюджуєте відео, вам слід справедливо завантажити його IMHO
CSᵠ

Перевірили чи ви відповідь тут: stackoverflow.com/questions/4808322 / ...
d33pika

@godka haha ​​до тих пір, поки я можу насправді завантажити його;

@ d33pika насправді ні. здається, що rtmpdump все ще є потужним інструментом. я думаю, що це прапори, з якими я не зміг налаштувати, що не вдалося виконати роботу

Відповіді:


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 \
-о а.флв
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 вашого відеофайлу. Знайшов його в пакеті «відтворити».

  • -o- вихідне ім'я файлу. Якщо це mp4 потік, тоді використовуйте розширення .mp4.


Ви - мій герой! Мене все непокоїло прапорце -C команди rtmpdump. (Я досі не зрозумів, як мені це налаштувати, але це працює!)
alxyzc

4
Потрібно пояснити, для чого потрібні всі варіанти командного рядка, тому що мені це не зовсім зрозуміло
Іво Фліпс

11

Використовуйте програвач VLC для завантаження rtmpпотоку:

  1. Крок: Оберіть Media > Convert/Save(або скористайтеся ярликом Ctrl+ R)
  2. Крок: Виберіть вкладку Network
  3. Крок: Введіть URI потоку rmtp

    введіть тут опис зображення

  4. Крок: Оберіть Convertі введіть цільовий шлях / файл
  5. Крок: Ідіть!

1

Що стосується законності, яка залежатиме від обмежень, встановлених власником. Але я б припустив, якби це було не лише для особистого використання, не було б великої проблеми.

Що стосується їх завантаження, ви повинні мати можливість використовувати VLC . Я ніколи не пробував це сам, але в ньому перерахована підтримка протоколу RTMP, і це звичайна опція конвертування / збереження повинна мати можливість зберегти пар у файл без жодних проблем.


Я спробував це насправді, в результаті 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

Я мав успіх у деяких RTMP-потоках за допомогою програми youtube-dl .

Це додаток командного рядка, яке завантажить у поточний каталог, якщо ви не передасте йому ніяких аргументів. За допомогою потоків RTMP я зазвичай просто передаю йому URL-адресу сторінки, а не намагаюся знайти URI RTMP.

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

0

Streaming Video Downloader може це зробити - я використовую це для збереження всіх діток відео. Просто спробував це з твоєю лекцією Харвард, і це спрацювало. Це не безкоштовно, але це можна зробити.

Можливо, вам доведеться оновити веб-сторінку кілька разів, хоча для того, щоб зняти відео.

Розкриття інформації: Я був частиною команди розробників цього продукту.


0

Будучи Гарвардським недоградником, я звик дивитись лекціями в 2 рази або вище (звичка від CS50), і шкода, що відео в школах розширень не мають цієї функції.

Я виявив, що Jaksta (ви можете, ймовірно, десь знайти безкоштовну копію в Інтернеті) досить успішно завантажує потокові лекції у FLVформаті, які я потім можу дивитись у програвачі VLC з будь-якою швидкістю, щоб зміст мого серця.

Після завантаження першої лекції я можу отримати наступні лекції на окремому робочому столі, коли я переглядаю першу. Я знайшов це рішення, переглядаючи всі ці форуми і не дуже розуміючи, як реалізувати на Mac OS рішення RMTP, розміщене вище.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.