Запись потокового RTMP видео — Мой метод
В последнее время периодически проводятся довольно большое количество различный конференций, съездов, семинаров и прочих мероприятий IT-направленности. Большинство из них проводит прямую web-трансляцию с места событий, а некоторые даже потом выкладывают записи. Например «Платформа» , «HighLoad» , …
Анонсы мероприятий обычно выкладываются на Хабре или IT-Event.ru
С одной стороны, трансляции — это прекрасно: Можно не отходя от компьютера «посетить» интересное событие. С другой стороны — не всё так просто. Во-первых, не всегда есть техническая возможность посмотреть трансляцию (Качество Интернет-каналов всё ещё оставляет желать лучшего). Во-вторых, не всегда есть свободное время на нужный момент. В третьих, некоторые конференции проводятся одновременно в нескольких залах. Тут уже физически невозможно посмотреть всё и сразу. Хорошо, если выкладываются записи мероприятий, но они, как правило, в Сети появляются гораздо позже описываемых событий, да и выкладывают их лишь единицы. В общем, я поставил себе задачу найти способ сохранения видео с конференций для дальнейшего хранения и просмотра.
Следует отметить одну особенность: С рабочего места писать видео я не могу по причине помегабайтной тарификации (Получить безлимитный 100-мегабитный канал в Челябинске за разумные деньги нереально) поэтому скачивать буду на сервере хостинга Amazon.com.
Так же следует отметить вторую особенность: Flash отказывается работать на Instance от Amazon.com. Любой браузер при открытии страницы с флешем мгновенно падает с ошибкой. Причину я так и не выяснил. Возможно, это из-за отсутствия звуковой карты или из-за операционной системы Windows 2008 R2, возможно — особенность облачного хостинга Amazon.com. Этой проблемой ещё предстоит заняться.
Подавляющее большинство программ для сохранения трансляций по RTMP и другим протоколам вещания самостоятельно перехватывают поток и приступают к записи, не информируя пользователя о технических подробностях этого момента. Мне же по озвученным выше причинам требуется прямая ссылка на вещание. Как правило, при публикации трансляции ссылки на поток не размещаются. Посетителю сразу предоставляется страница с Flash или HTML5 плеером, который и занимается демонстрацией видео.
т.е. первым этапом предстоит перехватить RTMP-поток и получить ссылку.
Программ-перехватчиков найдено было 2 штуки: URL Snooper и LoopBack из комплекта WM Recorder.
URL Snooper не очень хорошо справляется с поставленной задачей, отлавливая в основном .swf банеры, а LoopBack оказалась, что называется, «В яблочко».
Ссылку на RTMP-стриминг можно получить, запустив LoopBack в режиме «LoopBack», а затем правой кнопкой мыши по перехваченному потоку — «Save stream propertis» — «Stream details».
На примере Seopult.tv:
Отдельная задача — правильно сформировать полный URL на поток. Для каждого сервиса или программы может быть своя специфика. Из приведенного выше скриншота методом проб и ошибок получена работающая ссылка:
rtmp://81.95.46.34/online/mp4:tv2
Теперь осталось скормить эту ссылку программе, которая будет сохранять поток в файл на жестком диске.
Мне удалось «приручить» две программы:
Консольная RTMPDump
На потоке прямой трансляции RTMPDump работает довольно сносно. На опубликованных роликах, вероятно, требуется тонкая настройка параметров, т.к. на тестовом фильме запись упорно обрывалась на 55%.
К RTMPDump есть GUI-оболочка Raljeta, но мне не удалось заставить её работать.
Менеджер закачек Net Transport
С прямой трансляцией справляется отлично. Тестовую запись удалось сохранить только установив закачку в 1 поток, иначе каждый поток скачивал только пропорциональную часть записи с её начала. Например, первые 20% при 5 потоках. Сказывается недоработка программы.
В целом, поставленную задачу можно считать решенной. Осталось уточнить несколько моментов с последующей обработкой записанного видео, попробовать запустить Flash на Amazon Instance и протестировать сохранение не-RTMP потоков. Полученные записи буду публиковать на сайте с IT видео.
При работе использовались статьи:
- Как скачать потоковое видео
- Скачивание с rutube.ru по rtmp-ссылкам
Если у кого есть что дополнить — прошу в комментарии.
6 Комментариев
Июнь 9th, 2012
Подскажите, где там в WM Recorder’е LoopBack? Скачал последнюю версию, это 14.11.3.0, всю папку несколько раз облазил, так и не нашёл.
Июнь 19th, 2012
Кстати да. Где лупбэк?
Июль 19th, 2012
LoopBack в версии 14.11 убрали, заменив на что-то другое. В версии 14.10 LoopBack ещё есть.
Июль 19th, 2012
Кстати, Net Transport действительно отлично сохраняет RTMP, причём без лишних заморочек.
Сентябрь 10th, 2012
Подскажите, как все это проделать свободным ПО? Из всего указанного бесплатно только RTMPDump, остальное варез.
Сентябрь 2nd, 2013
Никто не пробовал для записи потоков использовать медиа серверы? Нашел некоторую информацию про них.
http://itmultimedia.ru/media-servera-flash-media-server-wowza-erlyvideo-red5/
Наверное, тоже подойдут.
Добавить комментарий