16 февраля 2012

Как скачать и смотреть rtmp

Многие сайты, такие как  rutube  стали отказываться от распространения видео через обычный HTTP протокол и перешли на RTMP (Real Time Messaging Protocol) – проприетарный протокол потоковой передачи данных, без использования кэша браузера. Это сделано для того, чтобы обезопасить свой контент и предоставить пользователям  только  онлайн просматр без возможности сохранять видео и аудио файлы. По этой причине скачать видео с этих сайтов старыми способами теперь не вожможно. К примеру всеми любимое дополнение для Firefox'а, DownloadHelper не может скачивать RTMP ссылки.

Для Linux и Windows имеется отличная утилита rtmpdump. С помощью нее можно как скачать видео, так и посмотреть в плеере.

Пример использования:

Имеем rtmp-ссылку, ее можно получить через сервисы savefrom, keepvid и др., DownloadHelper, либо используя сниффер, советую "URL Snooper":
rtmp://video-12-2.rutube.ru/rutube_vod_2/mp4:n6vol1/movies/b2/1/b2115760d6feb5a2925dcd6c090deebe.mp4?e= 1329397438s=85e8a456ce1268b52a5db19a344e4d13MI

Качаем снифер URL Snooper с офсайта, разархивируем, устанавливаем WinPcap из папки и запускаем снифер URLSnooper.exe. На вкладке "General options" запускаем авто определение сетевой карты "Auto Determine Network Adapter Now". Затем жмем кнопку "Shiff Network". Открываем в браузере страницу с видео и в снифере находи искомую rtmp-ссылку.
  

Затем для скачки видео в командной строке вводим:
C:\rtmpdump --rtmp "rtmp://video-12-2.rutube.ru"
--app "rutube_vod_2"
--swfUrl "http://rutube.ru/player.swf"
--playpath "mp4:n6vol1/movies/b2/11/b2115760d6feb5a2925dcd6c090deebe.mp4?e=13293974
38&s=85e8a456ce1268b52a5db19a344e4d13MI"
--flv "output_video.flv"

Запустится процесс скачки и побежит счетчик процентов, после появится сообщение "Download complete", сигнализирующее об успешности операции.

По умолчанию скачанный файл будет в папке пользователя "c:\Users\Имя пользователя"

Напрямую плеер vlc не поддерживает rtmp поток, для этого нужно воспользоваться rtmpdump. Для того чтобы не скачивать,а открыть видео в плеере, нужно параметр --flv "output_video.flv" заменить на --quiet | "C:\Program Files\VideoLAN\VLC\vlc.exe" -

Чтобы смотреть rtmp через vlc или другой плеер, вводим в командную строку:

C:\rtmpdump --rtmp "rtmp://video-12-2.rutube.ru"
--app "rutube_vod_2"
--swfUrl "http://rutube.ru/player.swf"
--playpath "mp4:n6vol1/movies/b2/11/b2115760d6feb5a2925dcd6c090deebe.mp4?e=13293974
38&s=85e8a456ce1268b52a5db19a344e4d13MI"
--quiet | "C:\Program Files\VideoLAN\VLC\vlc.exe" -

Запустится плеер с потоковым видео

6 комментариев:

  1. У меня получилось! Вот моя команда
    rtmpdump --rtmp "rtmp://176.9.147.58" --app "vod" --swfUrl "http://all-episodes.com/flash/player.swf" --playpath "mp4:/americandadh264/season8/AmericanDad-S08E04(natolich).mp4" --flv "AmericanDad-S08E04(natolich).flv"

    ОтветитьУдалить
  2. Анонимный4 марта 2013 г., 5:47

    А как добавить потоки rtmp в плейлист VLC? Хотелось бы запускать промсотр из VLC. Возможно ли это?

    ОтветитьУдалить
  3. К сожалению напрямую это невозможно, только через rtmpdump!

    ОтветитьУдалить
  4. не получается узнать адрес rtmp, то есть адрес он показывает а на сайте в плеере не работает

    ОтветитьУдалить
    Ответы
    1. не совсем ясно, что именно не работает, напишите конкретней, что вы делаете и что не получается, попробуем разобраться вместе!

      Удалить