rtmpdump – дъмпване на онлайн телевизия – БНТ 1, БТВ и Нова ТВ

На тази тема има публикуван нов материал с включени видео-уроци. Можете да го прочетете тук:
rtmpdump tutorial – урок за начинаещи

Заиграх се малко с rtmpdump. Много готин инструмент, с който може да се прихваща защитено видео. За да си набавя параметрите за дъмпа, използвах Wireshark.
Дъмп за гледане на БНТ1 през VLC:
rtmpdump -r “rtmp://edge2.evolink.net:2020/fls” -a “fls” -f “WIN 11,5,502,149” -W “http://cdn.bg/flash/jwplayer510/player.swf” -p “http://cdn.bg/live/4eViE8vGzI” -T “B@1R1st1077” -y “bnt.stream” –quiet | vlc –

Update [14.03.2016] Променен е стрийма на БНТ1. По долу е работещ към днешна дата код. БНТ1 разпознава само БГ IP-та, затова от чужбина трябва да се ползва прокси.

rtmpdump -r "rtmp://edge2.cdn.bg:2020/fls" -a "fls/" -W "http://i.cdn.bg/eflash/jwplayer510/player.swf" -f "WIN 18,0,0,232" -p "http://cdn.bg/live/4eViE8vGzI" -y "bnt.stream?at=22c035726e941f171f6676751141b491" -T "B@1R1st1077" --quiet | vlc -

БНТ HD

rtmpdump -r "rtmp://edge2.cdn.bg:2020/fls" -a "fls/" -W "http://i.cdn.bg/eflash/jwplayer510/player.swf" -f "WIN 18,0,0,232" -p "http://i.cdn.bg/live/OQ70Ds9Lcp" -y "bntHDt.stream?at=22c035726e941f171f6676751141b491" -T "B@1R1st1077" --quiet | vlc -

Дъмп на БНТ2

rtmpdump -r "rtmp://edge11.cdn.bg:2020/fls" -a "fls/" -W "http://cdn.bg/eflash/jwplayer510/player.swf" -f "WIN 18,0,0,232" -p "http://cdn.bg/live/ZBPbdxDHm7" -y "bnt2.stream?at=22c035726e941f171f6676751141b491" -T "B@1R1st1077" --quiet | vlc -

Дъмп на БТВ
rtmpdump -r “rtmp://46.10.150.111:80/ios” -a “ios” -f “WIN 11,5,502,149” -W “http://images.btv.bg/fplayer/flowplayer.commercial-3.2.5.swf” -p “http://www.btv.bg/live/” -y “btvbglive” –quiet | vlc –

rtmpdump -r "rtmp://46.10.150.113:80/alpha" -a "alpha" -f "WIN 11,5,502,149" -W "http://www.btv.bg/static/bg/shared/app/flowplayer/flowplayer.rtmp-3.2.13.swf" -p "http://www.btv.bg/live/" -y "alpha" --quiet | vlc -

И двата стринга могат да се запазят като изпълними скриптове на десктопа и да се стартират с 2 клика.

Може да се дъмпва и директно до файл, като се посочи output -o. Пример за дъмпване на бТВ до файл:

rtmp://46.10.150.113:80/alpha" -a "alpha" -f "WIN 11,5,502,149" -W "http://www.btv.bg/static/bg/shared/app/flowplayer/flowplayer.rtmp-3.2.13.swf" -p "http://www.btv.bg/live/" -y "alpha" -o "BTV_01.flv"

Нова ТВ
– плей с VLC

rtmpdump -r "rtmp://edge1.evolink.net:2010/fls" -a "fls/_definst_" -y "ntv_2.stream" -p "http://i.cdn.bg/live/" -T "N0v4TV6#2" --quiet | vlc -

– кепчъринг с rtmpdump

rtmpdump -r "rtmp://edge1.evolink.net:2010/fls" -a "fls/_definst_" -y "ntv_2.stream" -p "http://i.cdn.bg/live/" -T "N0v4TV6#2" -o "NovaTV_01.flv"

За да записвам Нова ТВ се наложи да декомпилирам swf-файла в който беше набутана паролата за стринга (Secure Token – TEA). Тази парола се добавя с параметъра -T, в случая е -T “N0v4TV6#2”

Дъмп на Канал 3

rtmpdump -V -r "rtmp://edge4.cdn.bg:2017/fls" -a "fls/" -W "http://i.cdn.bg/flash/jwplayer510/player.swf" -f "WIN 18,0,0,232" -p "http://i.cdn.bg/live/FP08SWAJ4v" -y "kanal3.stream?at=22c035726e941f171f6676751141b491" --quiet | vlc -

Дъмп на ТВ Европа

rtmpdump -r "rtmp://lb.blb.cdn.bg:2018/fls" -a "fls/" -y "tvevropa.stream" --quiet | vlc -

Дъмп на SPortal
До файл:

rtmpdump -V -r "rtmp://pri.cdn.bg:2001/fls" -a "fls/" -y "sportal_tv_hd.stream" -p "http://www.novini.bg/tv/703-sportal-bg.html" -o "proba.flv"

До VLC palyer:

rtmpdump -V -r "rtmp://pri.cdn.bg:2001/fls" -a "fls/" -y "sportal_tv_hd.stream" -p "http://www.novini.bg/tv/703-sportal-bg.html" --quiet | vlc -

===========================================
Подробно описание, как прихващам стриймовете (писал съм го за един форум, но го поствам и тук).
Надушвам ги с Wireshark. Ето как:
1. Стартираш Wireshark и “надушваш” кое е IP-то което стриймва. Това може да стане и с друга програма, като SmartSniffer или подобна лека програмка. Там се вижда много ясно кое IP точи постоянен трафик. След това залагаш това IP като филтър в Wireshark:
01.8699
Може да си сложиш IP-то като филтър и автоматично, с 2 клика:
02.8583
2. След това кликам на някой от прихванатите филтрирани пакети и с десен бутон избирам [b]Follow TCP stream[/b].
03.6096
3. Показва се прозореца с данните от прихванатите пакети, като в него намирам всичката ми необходима информация, за да направя дъмп на видеото:
04.7009
pageUrl…http://www.btv.bg/live/
flashVer…WIN 11,5,502,149
app…ios
swfUrl..http://images.btv.bg/fplayer/flowplayer.commercial-3.2.5.swf
tcUrl…rtmp://46.10.150.111:80
play………….btvbglive

4. С тези данни мога да стриймвам директно, ако сървара ми позволи, или пък да дъмпна стрийма с rtmpdump, като просто си заместя инфото като аргументи за стартиране на програмата:

rtmpdump -r “rtmp://46.10.150.111:80/ios” -a “ios” -f “WIN 11,5,502,149” -W “http://images.btv.bg/fplayer/flowplayer.commercial-3.2.5.swf” -p “http://www.btv.bg/live/” -y “btvbglive” -o “BTV_01.flv”

UPDATE: Стрийма на БТВ е променен. Новият е:
rtmpdump -r "rtmp://46.10.150.113:80/alpha" -a "alpha" -f "WIN 11,5,502,149" -W "http://www.btv.bg/static/bg/shared/app/flowplayer/flowplayer.rtmp-3.2.13.swf" -p "http://www.btv.bg/live/" -y "alpha" -o "BTV_01.flv"

5. Пийваш малко биричка и междувременно можеш да си пуснеш дъмпвания файл в някой плеър, за да си го гледаш в реално време.
————–
Междувременно написах проста програма – TV Player, която използва по-горните команди за гледане на онлайн телевизия. Програмката се намира тук:
Simple BG TV Player – прост rtmpdump плеар за гледане на BG-телевизии
Изглежда така:
simple bg tv player - онлайн телевизии

ffmpeg commands

Напоследък съм тотален фен на OpenSource видео конвертора ffmpeg.
Ето примери с някои прости команди, които вършат страхотна работа:

ffmpeg.exe -i all.vob -sameq -ss 75 -t 75 -vcodec libx264 test.mpg

-i all.vob – файла, който ще обработваме
-sameq – запази качеството на видеото
-ss 75 – почни да режеш от 75-та секунда
-t 85 – продължителност на рязането 85 секунди
-vcodec libx264 – видео кодек в който да се конвертира. Ако искаме да сме сигурни, че файла ще върви на всяка Windows машина, можем да ползваме -vcodec msmpeg4v2.

Някои допълнителни екстри:
Video:
-s – размер на картината
-b – видео битрейд
-r – скорост на кадрите
-croptop, -cropbottom, -cropleft, -cropright – рязане на картината в пиксели
-padtop, -padbottom, -padleft, -padright – поставя кантове до картината (padding), в този случай е добре да се зададе и -padcolor 000000 – цвят на кантовете в HEX-формат, в случая 000000 – черно.
-vn – не конвертирай никакво видео. Използва се за да се екстрактне аудиото.

Audio:
-acodec libmp3lame – задаване на кодек за аудиото
-acodec copy – използвай същия кодек за аудиото
-ab 128k – битрейд за аудиото
-ac 6 – задаване на аудио каналите
-an – без аудио

Обединяването на видео и аудио става просто като добави и двата файла в началото;

ffmpeg -i audio.wav -i video.m2v ...

Конвертиране на MPG видео до FLV с високо качество за качване по видео-порталите:

ffmpeg -i input.mpg -sameq -f flv -vcodec libx264 output.flv

—————————-
UPDATE: 05.09.2016
—————————-
Някои интересни команди за кепчъринг на онлайн видео стрийм

ffmpeg архива за Windows върви с някои интересни инструменти. Един от тях е ffplay, който е наистина необикновен видео-плеър.
Един пример, който показва възможностите за плейване на онлайн стрийм (телевизията е City TV) с ffplay:

ffplay -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"

Ако съхраните в една директория mplayer и ffmpeg екзетата, ще можете да гледате отново същата телевизия, но през пайп с mplayer:

mplayer -cache 2000 -cache-min 99 "ffmpeg://http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"

Същото, но прекарано през ffplay:

ffmpeg -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8" -f matroska - | ffplay -i -

Ffmpeg е направо велик инструмент, който се ползва лесно и бързо, заради интуитивните му команди.

Join VOB files

За да се конвертира DVD до по-нормален формат, често се налага преди това VOB-файловете да се свържат в един общ (Join VOB files). Много хора не знаят, че MPEG и VOB файловете позволяват конкатенация, т.е. последователно свързване.
Свързване на VOB файлове под Windows:

copy /b 01.vob+02.vob+03.vob all.vob

Свързване на VOB файлове под Linux/UNIX/Mac:

cat 1.vob 2.vob 3.vob > all.vob

Ако е спазен стандарта при създаването на VOB-файловете не би трябвало да има проблеми.