Задание: записать трансляцию конференции, которая идёт через интернет.

На сайте встроен флеш-объект, который, собственно, эту трансляцию и крутит. Методом просмотра исходного текста странички было обнаружено, что флешка берёт видеопоток с сервера по протоколу RTMP. Так как грабить видео очень не хотелось (геморрой, потеря качества, да и вообще отстойное решение), стал разбираться что это за протокол и как сливать такой поток непосредственно с сервера.

Протокол RTMP

RTMP (англ. Real Time Messaging Protocol) проприетарный протокол потоковой передачи данных, в основном используется для передачи потокового видео и аудиопотоков с веб-камер через интернет.

В 2009 году Adobe выпустила документ, названный спецификацией RTMP, однако это умышленно неполный документ, направленный на сдерживание развития альтернативных серверов. Для прочтения этого документа необходимо согласиться с лицензионным соглашением, которое требует создания RTMP сервера только по спецификации от Adobe без каких-либо отступлений. В этой спецификации указаны намеренно неверные данные, так, например, для включения на Flash Player декодера H.264 требуется криптографически подписать хендшейк, а в спецификации написано, что обязательно надо заполнять произвольными данными. Таким образом, приняв условия лицензии на спецификацию, разработчик лишается возможности реализовать полноценный RTMP сервер.

http://ru.wikipedia.org/wiki/RTMP

Протокол прекрасен. Реализация восхитительна. Но задачу решать надо.

Сохранение потока с сервера RTMP

Обычно трансляции идут через веб и посмотреть их вроде бы можно только с веб-странички (во флеш-плеере), без возможности перемотки или сохранения видео на локальный компьютер.

Однако, методом поиска были найдены программы RTMPDump и её форк flvstreamer, которые способны работать с сервером RTMP напрямую, минуя флеш. flvstreamer, кстати, доступен из репозиториев Ubuntu. С ним и будем работать.

Исходный код веб-странички, а точнее та часть, которая отвечает за встраивание плеера, может дать нам следующую информацию:
1. Адрес трансляции (rtmp://домен/путь)
2. Файл описания потоковой сессии по адресу из п.1 (файл.sdp)

Именно так: эта информация содержится не в одном длинном урле, а в двух разных параметрах встроенного объекта. По крайней мере — в моём случае.

Командуем в консоли:

flvstreamer -r rtmp://домен/путь/файл.sdp -o локальный_файл.flv

И в локальный_файл.flv начинает литься чистый, не пережатый, исходного качества поток.

Параметры и ключи программы flvstreamer

flvstreamer --help

Перевод мой, глубоко не вникал, замечания и исправления приветствуются.

FLVStreamer v1.9
(c) 2009 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL

Программа сохраняет потоковое видео и аудио с сервера rtmp.

--help|-hПечатает файл справки программы flvstreamer.
--rtmp|-r urlАдрес (URL) трансляции (то есть, rtmp://сервер[:порт]/путь)
--host|-n hostnameПереопределяет сервер из rtmp url
--port|-c portПереопределяет порт из rtmp url
--socks|-S host:portИспользовать определённый прокси SOCKS
--protocol|-lПереопределяет протокол из rtmp url (0 - RTMP, 3 - RTMPE)
--playpath|-yПереопределяет путь к трансляции, взятый из rtmp url
--swfUrl|-s urlURL проигрывателя swf-файлов
--tcUrl|-t urlURL проигрываемого потока (по умолчанию: "rtmp://сервер[:порт]/проигрыватель")
--pageUrl|-p urlВеб-адрес programme (?)
--app|-a appИмя используемого проигрывателя
--auth|-u stringСтрока аутентификации, которая будет добавлена в конец строки для соединения
--flashVer|-f stringВерсия Flash (по умолчанию: "LNX 10,0,22,87")
--live|-vСохранить прямой эфир , без возможности прокрутки (--resume) по доступным потокам
--subscribe|-d stringИмя потока, на который хотим подписаться (или, если задан ключ --live, - сделать его умолчательным)
--flv|-o stringФайл FLV для записи, если имя файла «-» - отправить поток на стандартный вывод
--resume|-eДокачать частично загруженный поток RTMP
--timeout|-m numВремя ожидания соединения, в секундах (по умолчанию: 120)
--start|-A numНачать на num секунде потока (не работает с --live)
--stop|-B numОстановиться на num секунде потока
--hashes|-#Отображать процесс, используя хэши вместо байтов как разделитель
--buffer|-bВремя буферизации в миллисекундах (по умолчанию: 36000000), эта опция имеет смысл только при отправке потока на стандартный вывод (-o -)
--skip|-k numПропустить num ключевых кадров в процессе поиска последнего ключевого кадра, с которого нужно начать докачку. Нужно при сбоях докачки (по умолчанию: 0)
--quiet|-qСкрыть любой вывод.
--verbose|-VУвеличить подробность вывода.
--debug|-zВключить вывод для разработчика.

Если не ввести параметры swfUrl, pageUrl, app или auth, они не будут включены в пакет инициализации соединения.



Diman779
2012.03.12 17:40:54
#cid18314

Ответить

можете мне сказать ???????
вы можете переделать rtmp:// в http://
вот ссылочка на живой поток rtmp://broadcast.quantumart.ru/live/dfm

Diman779
2012.03.14 19:52:53
#cid18501

Ответить

ответьте кто нибуть бля !!!!!!!!

2012.03.15 01:14:57
#cid18519

Ответить

#cid18501, Diman779

ответьте кто нибуть бля !!!!!!!!

Отвечаю, бля.

RTMP (англ. Real Time Messaging Protocol) проприетарный протокол потоковой передачи данных, в основном используется для передачи потокового видео и аудиопотоков с веб-камер через интернет.
http://ru.wikipedia.org/wiki/RTMP

HTTP (англ. HyperText Transfer Prоtocоl — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов).
http://ru.wikipedia.org/wiki/HTTP

Каким образом, бля, ты хочешь "переделать" протокол RTMP в HTTP?
И самое главное — нахуя?

Diman779
2012.03.15 01:30:57
#cid18521

Ответить

#cid18519,

#cid18501, Diman779

Отвечаю, бля.

RTMP (англ. Real Time Messaging Protocol) проприетарный протокол потоковой передачи данных, в основном используется для передачи потокового видео и аудиопотоков с веб-камер через интернет.
http://ru.wikipedia.org/wiki/RTMP

HTTP (англ. HyperText Transfer Prоtocоl — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов).
http://ru.wikipedia.org/wiki/HTTP

Каким образом, бля, ты хочешь "переделать" протокол RTMP в HTTP?
И самое главное — нахуя?

чтоб слушать в плеере бля !!!!!!

Владимир
2012.03.15 19:41:27
#cid18608

Ответить

#cid18314, Diman779

вы можете переделать rtmp:// в http://

#cid18521, Diman779

чтоб слушать в плеере бля !!!!!!

Не очень понятно, что хочешь сделать. Посмотри здесь:
http://www.adobepress.com/articles/article.asp?p=1014968
и уточни, пожалуйста, вопрос.

Diman779
2012.03.15 20:16:44
#cid18612

Ответить

#cid18608, Владимир

#cid18314, Diman779

#cid18521, Diman779

Не очень понятно, что хочешь сделать. Посмотри здесь:
http://www.adobepress.com/articles/article.asp?p=1014968
и уточни, пожалуйста, вопрос.

мне в плеере нужно слушать а не сайте

Diman779
2012.03.15 20:41:42
#cid18613

Ответить

ЕСЛИ МОЛЧАЛ ХРЕН КТО И НАПИСАЛ СЮДА

2012.03.15 21:41:25
#cid18620

Ответить

#cid18612, Diman779

Твой первый вопрос: как переделать rtmp в http?
Простой ответ: никак.

rtmp — протокол для передачи потокового видео и аудио.
http — протокол для передачи текста.

мне в плеере нужно слушать а не сайте

Тебе нужно сохранить поток на диск. Как это сделать — написано в заметке.
После этого нужно переконвертировать сохранённый поток в формат, который понимает твой плеер.

#cid18613, Diman779

С капслоком так бывает.

Diman779
2012.03.16 16:06:07
#cid18693

Ответить

#cid18620,

#cid18612, Diman779

Твой первый вопрос: как переделать rtmp в http?
Простой ответ: никак.

rtmp — протокол для передачи потокового видео и аудио.
http — протокол для передачи текста.

Тебе нужно сохранить поток на диск. Как это сделать — написано в заметке.
После этого нужно переконвертировать сохранённый поток в формат, который понимает твой плеер.

#cid18613, Diman779

С капслоком так бывает.

это ЖИВОЙ ПОТОК !!!!!!!!!!!!! как ты его сохраниш ???бля это ОНЛАЙН РАДИО DFM как ты на диск сохраниш?

Diman779
2012.03.16 16:09:53
#cid18694

Ответить

#cid18620,

#cid18612, Diman779

Твой первый вопрос: как переделать rtmp в http?
Простой ответ: никак.

rtmp — протокол для передачи потокового видео и аудио.
http — протокол для передачи текста.

Тебе нужно сохранить поток на диск. Как это сделать — написано в заметке.
После этого нужно переконвертировать сохранённый поток в формат, который понимает твой плеер.

#cid18613, Diman779

С капслоком так бывает.

и http это тоже аудио вещание
вот тебе весь список !!!!!!!!! этого сещания бля
#EXTM3U
#EXTINF:-1,MiX FM Ukraine (48K)
http://mixfm.com.ua:8000/
#EXTINF:-1,MiX FM Ukraine (192K)

Лишняя информация ни к чему, не надо загромождать комментарии.

2012.03.16 16:41:23
#cid18695

Ответить

#cid18693, Diman779

это ЖИВОЙ ПОТОК !!!!!!!!!!!!! как ты его сохраниш ???бля это ОНЛАЙН РАДИО DFM как ты на диск сохраниш?

Программой flvstreamer.

#cid18694, Diman779

и http это тоже аудио вещание

http — это протокол.

вот тебе весь список !!!!!!!!! этого сещания бля
#EXTM3U
#EXTINF:-1,MiX FM Ukraine (48K)
http://mixfm.com.ua:8000/
...

Во-первых, это был далеко не весь список.
Во-вторых, принимать поток надо программой, которая понимает протокол вещания сервера. Если сервер отдаёт поток по http — тебе нужен клиент http. Если сервер отдаёт поток по rtmp — тебе нужен клиент rtmp.

Клиентом http получить поток с сервера rtmp нельзя.

Diman779
2012.03.16 17:32:20
#cid18701

Ответить

#cid18695,

#cid18693, Diman779

Программой flvstreamer.

#cid18694, Diman779

http — это протокол.

Во-первых, это был далеко не весь список.
Во-вторых, принимать поток надо программой, которая понимает протокол вещания сервера. Если сервер отдаёт поток по http — тебе нужен клиент http. Если сервер отдаёт поток по rtmp — тебе нужен клиент rtmp.

Клиентом http получить поток с сервера rtmp нельзя.

чё не реал не чё сделать ?? а то говорят прогой rtmpdump.exe переделывают rtmp в http

Diman779
2012.03.16 22:51:28
#cid18725

Ответить

эээ придурки тупые вот смотрите я переделал его в http://66.231.176.36:80/live/dfm

Diman779
2012.03.16 22:53:50
#cid18726

Ответить

бараны вы все упёртые и тупые!!!!!!!!!!! всё возможно в этой жизни не чего нет не возможного !!!!!!!

2012.03.16 23:08:10
#cid18727

Ответить

#cid18726, Diman779

бараны вы все упёртые и тупые!!!!!!!!!!! всё возможно в этой жизни не чего нет не возможного !!!!!!!

Дурачок, не ходи сюда.

Diman779
2012.03.18 18:10:18
#cid18944

Ответить

#cid18727,

#cid18726, Diman779

Дурачок, не ходи сюда.

ты иди отсуда

dump
2012.05.12 13:48:43
#cid24734

Ответить

Скажите, а возможно ли с помощью этих программ докачивать rtmp-видео? Ведь если его возможно перематывать (без загрузки всего ролика), то значит можно и докачивать? И ещё: что вы думаете делать, если сервисы (наподобие rutube)введут защиты на основе не просто rtmp-потока, а с использованием нескольких потоков, так чтобы файл закачивался с разных ip и разныз udp/tcp-соединений?

ILyAS
2012.09.04 16:41:01
#cid39922

Ответить

Столкнулся с аналогичной проблемой!
В Openbox S6+ HD есть FreeTV+, так вот промучался несколько дней пока понял, с чем он работает, оказывается со ссылками на поток rtmp. Где то в инете слышал, есть проги типа snuper, которые могут по http:// определить rtmp://
Хотел спросить спецов, без мата - хотя напрашивается, это реально с точки зрения поймать поток в ресивер для просмотра, увы к сожалению там нет кодеков поддерживающих mms и http. Может кто может объяснить по человечески, без наездов.
Спасибо.

Dark Mind
2012.09.12 17:51:25
#cid40985

Ответить

http://fortisclub.com/download/file/972-skyway-internet-tv-v14.html
rtmp playlist для твоего реса, последняя версия.
Я оттуда юзаю.

Дмитрий
2013.02.20 13:22:53
#cid55586

Ответить

Почитал посмеялся) А можно переделать поток rtmp в mms?

Хаха
2013.02.24 15:07:44
#cid55879

Ответить

Ржач, протоколы

кузя
2013.05.02 18:40:17
#cid60947

Ответить

Видеолан может записывать любой поток видео по:
http
mms
rtsp
udp

babindevil
2013.05.06 22:50:36
#cid61265

Ответить

Сдрасте, такая задача:
есть поток rtmp который работает n-ое раз в год,но адрес постоянный, так вот нужно что бы этот поток сохранялся автоматом на сервере,ну и чтобы на сайте его можно было смотреть онлайн и эти два процесса не мешали друг другу, просмотр можно реализовать с помощью плагина JW Players, а как запись??
Вопросы нахуя?, что бля, где бля, не принимаются. Пожалуйста по факту если не в лом.

Natali
2013.10.31 16:03:36
#cid77628

Ответить

#cid18725, Diman779

эээ придурки тупые вот смотрите я переделал его в http://66.231.176.36:80/live/dfm

Здравствуйте! Аналогичная задача. Вопрос - как Вы это сделали? Поделитесь, пожалуйста!
rtmp - поток от радиовещательного оборудования сделать доступным по http для проигрывания в плеерах на сайте.

ваш рррр
2013.11.28 01:06:02
#cid80720

Ответить

как можно выдернут rtmp поток с тв онлайн

imen
2013.11.28 15:30:51
#cid80814

Ответить

#cid80720, ваш рррр

как можно выдернут rtmp поток с тв онлайн

Кстати да, я конечно особо не упирался, но…
От локальной копии интервью RMS категорически не отказался бы.
Попытка применения наработанных рецептов успеха не дала.

2013.12.10 09:38:52
#cid82542

Ответить

#cid80720, ваш рррр

как можно выдернут rtmp поток с тв онлайн

Я хз. Разбирался с rtmp под конкретный случай, что выяснил — написал сюда. Копать глубже нет ни времени, ни желания, если честно. Если столкнусь и разберусь — допишу. Если кто даст полезную информацию в комментариях — перенесу в заметку.

alexxxxxx
2014.03.25 17:38:05
#cid89075

Ответить

Привет. Хочу украсть видео поток и поставить на свой сайт.
как это зделат?
вот что достать сумел -

rtmp://5.39.71.63/live/ch01

rtmp://$OPT:rtmp-raw=rtmp://5.39.71.63/live playpath=ch01?token=VsZnC28VZEHD4gfA-ZjIAQ&e=1390803005 swfUrl=http://www.ziuriu.tv/res/js/flow/flowplayer.commercial-3.2.15.swf live=1 pageUrl=http://www.ziuriu.tv/demo

thanks

Андрей
2015.12.14 23:59:07
#cid91196

Ответить

Здравствуйте.
Интересует скачка видео с архивов популярных тв каналов - домашний, рентв, пятница, нтв, перец и т.д. И для начала хотелось бы выяснить по каким схемам там происходит проигрывание видео? С помощью каких программ или расширений возможно скачивание видео именно с вышеуказанных ресурсов.

например -

http://www.domashniy.ru/video/dekorativnye-strasti/

http://www.ntv.ru/peredacha/Akzenty/last24168733/

http://ren.tv/video/epizod/6655

http://revizorro.friday.ru/videos/vipuski/novosibirsk-4-fv

http://chetv.ru/show/utilizator/1_sezon/4_vyipusk/

Юзер
2016.01.24 00:52:33
#cid91329

Ответить

В исходном коде веб странички не смог отыскать rtmp ссылку , поймал ее правда с помощью wiresharka и им же отыскал Playpath. Пробовал качать и с помощью RTMPDump и FLVstreamer - качает , но в каком то ужатом виде до не могу. Найти нормальную ссылку так и не смог((

Гость
2017.03.21 01:51:59
#cid91777

Ответить

А не подскажет ли многоуважаемый алл, как записать фрагмент онлайн-трансляции с помощью RTMPDump или FLVstreamer (клоны - обе совершенно одинаковы)
Пишут канал с вебкамеры на комп, но ониж суки обе - пишут пока не надавиш Контрол-Брейк
Как этим двом сукам сказать, чтобы они писали 10 минут (например) и валили нахер (ну типа будет в цикле кучка из 10-ти минутных нарезок)

Это возможно ?

2017.03.21 21:15:05
#cid91781

Ответить

#cid91777, Гость

А не подскажет ли многоуважаемый алл, как записать фрагмент онлайн-трансляции с помощью RTMPDump или FLVstreamer (клоны - обе совершенно одинаковы)
Пишут канал с вебкамеры на комп, но ониж суки обе - пишут пока не надавиш Контрол-Брейк
Как этим двом сукам сказать, чтобы они писали 10 минут (например) и валили нахер (ну типа будет в цикле кучка из 10-ти минутных нарезок)

Это возможно ?

Например скриптом, который через 10 минут пошлёт программе сигнал выхода.

imen
2017.03.22 11:30:20
#cid91782

Ответить

#cid91781,

Например скриптом, который через 10 минут пошлёт программе сигнал выхода.

С последующим перезапуском в новый файл дампа?

По мне правильнее зайти в трекер апстрима и запросить опций, аналогичных реализованным в dvgrab.