PVC корниз Gardinia

Ей това са всички необходими неща за монтаж на PVC корниз Gardinia – корниз, бленда (продава се отделно на метър), присъединители за свързване на два корниза, кукички с кръгли плъзгачи, тапи за закриване на дупките за дюбелите, стопери. Преди съм монтирал и двуканалния алуминиев корниз на Gardinia, но и пластмасовия е с добро качество, а и го има по всички големи строителни хипермаркети. За този закупих бяла бленда на цена около 5лв/m.

Share and Enjoy !

Shares

Мисловна карта (MindMap) за изграждане на кухненски шкаф

От скоро чета книгите на Тони Бюзан, който изучава човешкия мозък и предлага практични решения за сложни задачи. и реших да се заиграя с FreeMind, като създам мисловна карта на нещо сравнително просто, като изграждане на долен кухненски шкаф. Включих всички материали, инструменти и дейности, които са необходими за подобен шкаф. Получи се нещо, което ме изненада и за това го шервам. Техниките на Тони Бюзан и изграждането на мисловни карти са наистина полезни в почти всяко начинание в човешката дейност.

MindMap на изграждането на кухненски шкаф (долен)

Прилагам FreeMind сорс файла на картата: Kuhnenski_shkaf-dolen-MindMap-FreeMind.zip

Share and Enjoy !

Shares

Оптимизиране рязането на линейни детайли

Написах едно тулче за калкулиране на оптимално рязане на линейни детайли. Писано е на JavaScript за браузер, защото така ми е най-бързо и удобно. При повече от 22 детайла вероятно ще започне да лагва, защото възможните комбинации стават безкрайни, а всичко го тъпча в масиви. Ако ми остане време, ще го портна до C или C#.

И един пример, как се ползва. В момента си правя стелаж за обувки и искам да знам, колко стоманени профила да си купя и как да разпределя срезовете, за да имам най-малък отпадък. Ей това е проекта:

За да разположа оптимално детайлите по профили с дължина 2 метра въвеждам парчетата в тула:

Програма за оптимизиране рязането на линейни детайли

Резултатите ми показват, че ще ми трябват общо 4 парчета метален профил, като най-големия ми остатък е 1.034m.

Тула е събран в един HTML файл.
Може да се изтегли от тук: Изтегли
Или да се ползва от тук: Демо

Share and Enjoy !

Shares

Kitchen cabinet calculator

Написах един инструмент, който да ми помогне при калкулирането на необходимите плоскости за сглобяване на кухненски шкафове. Интрумента представлява един HTML файл, който може да се стартира от всяко устройство. Кода е респонзив. Най-полезната за мен опция е възможността за експортиране на модела в Blender чрез генериране на Python скрипт. Кръстих го Kitchen cabinet calculator и е на английски, за да мога да обхвана по-голяма аудитория. Като ми остане време, ще направя и версия на български, но за сега мисля, че е достатъчно разбираем. Кода е напълно свободен и всеки с PHP 7 и по-висока версия може да си го компилира.

Demo: Kitchen cabinet calculator

Download: Kitchen cabinet calculator
Source: Kitchen cabinet calculator – Source

Видео ръководство, как се използва инструмента:
https://youtu.be/LPJBfQQgEp8

Share and Enjoy !

Shares

Идея за разтегателно легло (extendable bed idea)

Хрумна ми една идея за разтегателно легло и реших да я запиша. Някой ден може да реализирам или да направя нещо друго на базата на тази идея. Точно такова разтегателно легло не съм виждал, а мисля, че има смисъл в подобна конструкция. Може да се ползва в ограничени пространства или като легло за гости. Боунус е възможността за монтиране на голямо чекмедже. Ренднах в Blender няколко картинки, които показват, каква точно ми е идеята за разтегателно легло.
Това е свития, компактен вариант на леглото:
Разтегателно легло, extendable bed
Разтягането става, като се издърпа лявата страница:
Разтегателно легло, extendable bed
Разтегателно легло, extendable bed
Скарата на леглото е изградена от летвички 950x40x20mm, а материал примерно липа:
Разтегателно легло, extendable bed
Разтегателно легло, extendable bed
Разтегателно легло, extendable bed
Летвичките са разположени шахматно. На плъзгащата част е монтирана ограничаваща летвичка.
Разтегателно легло, extendable bed
Разтегателно легло, extendable bed
Матрака може да е двойно сгъваем с размери на отделните части 820x950x100mm. При разпъване се получава матрак 1900x820x100mm. За по-голямо удобство, след разтягане може да се метне отгоре един топ-матрак, примерно от тук:
топ матрак
Летвичките профил 4x2cm могат да се вземат от тук:
летвички липа 40x20x2000
Корпуса на леглото е проектиран от ЛПДЧ 18mm. Страниците и дъното на чекмеджето са проектирани от суров МДФ 12mm.
Има какво още да се помисли, като например при компактния вариант на леглото има луфт от страни между матраците и страницата. Като ми дойде музата, ще помисля, как мога да го подобря.

Ето и кратко видео, което показва цялата ми идея за разтегателно легло:

If your browser doesn’t support HTML5 video. Here is a link to the video instead.

Blender файл на проекта с размери 1:1: leglo_divan-82x190cm.zip

Share and Enjoy !

Shares




Конвертиране на видео до webm, ogv, mp4, mkv – Ned Video Converter

Ned video converter - ogv, webm, mp4
Беше ми необходима проста програма за конвертиране на видео до webm и ogg video (ogv), която да ми позволява пълен контрол на изходния файл. Тъй като не намерих такава безплатна, освен конзолния ffmpeg, реших да спретна едно GUI за ffmpeg с просто кодиране в AutoIt. Чудих се за името на програмата и реших да не се правя на оригинален, затова е Ned video converter.
Програмата в момента конвертира до webm, avi, ogv, mp4, flv и mkv. Но позволява да се стартира кодиране до всякакъв формат, ако познавате инструментите на ffmpeg. Стартирането на процеса взима стринга от полето Command и така могат ръчно да се променят всички параметри. Например можем да зададем ръчно команда за конвертиране на видео до mp3-файл, като в полето Command въведем следния тринг:

ffmpeg -i <input> -c:a libmp3lame -b:a 256k -vn -f mp3 some_audio_file.mp3

Ned video converter - mp3
Разбира се ръчните настройки са само опционални, спокойно могат да се ползват вградените скромни опции на GUI-то.
Важно е да се отбележи, че при ресайзване на видео по широчина, тогава височината се променя в съотношение, за това зададената височина трябва да е кратна на 2. Това е причината понякога ресайването да не работи. Просто се въвежда нова стойност на широчината, увеличена или намалена с +1 (примерно 600 не работи, тогава се пробва с 601, 602 и т.н.) и се натиска бутона Generate Command.
Ако файловете се получават големи или с недобро качество е добре да се попрочете документацията на ffmpeg. Параметрите за конвертиране могат да се променят и от външния ini-файл, така че да паснат на конкретните нужди.
Прилагам и сорса, който е доволно прост. Отделил съм GUI-частта и фукциите от основния файл, за да има по-добра четимост.
При конжертиране на avi и mkv (matroska) съм задал да се използва параметъра -crf за контрол на качеството. По принцип за запазване на качеството, каквото е във входния файла, параметъра се сетва на -crf 23. За по-малък файл и по-лошо качество може да се остави на -crf 25 или повече. За по-добро качество на картината може да се пробва с -crf 19.
Сорса е абсолютно свободен за ползване, променяне, споделяне.
Изтегляне за 32 и 64bit Windows:
Ned_video_converter-32bit-0.02.zip
Ned_video_converter-64bit-0.02.zip
Ако има проблеми с програмката, моля да ги споделите в коментарите.
По-долу може да се види кратко видео с примерно конвертиране до webm и mp4 формати. Видеото е конвертирано до тези формати, за да мога да го вградя в тази страница. Видеото, което конвертирам е свален от YouTube клип Camila Cabello – Havana ft. Young Thug.

Share and Enjoy !

Shares




Папиемаше пингвин – направи си сам

Папиемаше пингвин
Обичам почивните дни! И никога не са ми достатъчни. Но пък все се намира време да направим някоя щуротия с дъщеря ми. Последния ни проект беше да си направим готина фигурка от папиемаше. Направихме бърз ресърч в интернет и решихме, че най-лесно и готино ще ни се получи пингвин.

Необходими материали за изработване на папиемаше:

  • Малък балон
  • Ножица
  • Вестник
  • Съд с вода
  • Лепило C200 или друго за хартия
  • Съд за лепилото – може и пластмасов капак
  • Боички

Папиемаше пингвин - необходими материали

Първо нарязахме вестника на лентички, които накиснахме в съда с вода. След това започнахме да облепяме балона с мокрите лентички.
Папиемаше пингвин

Папиемаше пингвин

След като налепихме първоначалния слой, започнахме да лепим следващите слоеве лентички от вестник, като този път ги накисвахме в лепилото, докато се получи хартиен слой с дебелина около 2-3 мм.

Папиемаше пингвин - облепен балон

Оставихме балона да изсъхне напълно и да се втвърди. След това нарисувахме украсата на пингвина с молив и боядисахме по формите с боичките. След това изрязахме малки парчета хартия за ръцете и клюна. Краката ги направихме от навити на ролка лентички. И се получи тази прелест 🙂 :

Папиемаше пингвин

Папиемаше пингвин

Папиемаше пингвин

Забавлението с папиемаше е изключително. Дъщеря ми се почувства като скулптор, а моята награда е удоволствието, което и доставих. Ако не сте пробвали папиемашето с децата си, ви го препоръчвам!

Share and Enjoy !

Shares




Собствен ръкописен шрифт Nediko.ttf

Това е тест първи по създаването на собствен ръкописен шрифт. За целта използвах Inkscape, като изтеглих шаблони от https://www.paintfont.com/. Както всяко начало и това е трудна работа. Разработвам един проект в който искам да вкарам натурален шрифт, който да имитира максимално писане с химикал. Потърсих за подобни шрифтове на кирилица, но не намерих. За това се наложи, да се пробвам да си направя сам. Е горе-долу се получи. Не е баш както си го представях, но ще го ползвам.
Наличните символи не са много:
Nediko - custom font - Symbols

Ето как изглежда шрифта ми на кирилица и на латиница:
Nediko custom font

Може да се изтегли от тук: Nediko.ttf – 32.5Kb

Share and Enjoy !

Shares




Simple TV Player – трикове с ini-файла

Урока е валиден за версия на плеъра 0.8 и по-нови.

Скоро пренаписах кода (то па един код) на плеара ми за БГ-телевизии Simple BG TV Player, като прехвърлих адресите на стриймовете във външен файл.
Тази промяна да доста свобода на действие, като позволява:

  • да се добавят нови стриймове и да се редактират старите
  • да се записва видеото
  • да се сменя дъмпера и плеара

В тази статия ще покажа някои от възможностите за редактиране на settings.ini файла.

Записване на стрийма във файл

За конкретния пример ще запиша стрим на телевизия BTV.
Като начало е добре да запазим копие на оригиналния файл settings.ini и да му дадем друго име, примерно settings_ORIGINAL.ini. Сега вече можем да мажем във settings.ini без притеснения, че може нещо да се обърка. Отваряме файла и намираме реда със стрийма на BTV. Копираме реда и го пействаме на нов ред. След това изтриваме последната част, която пайпва стрийма към mplayer и указваме на дъмпера да записва до файла с опцията “-o file.flv”. BTV сменят често адреса на стрийм сървара, затова ще покажа текущата работеща команда. Новия ред е добре да започва с ново име, примерно BTV RECORD или от сорта. Ето как изглежда при мен:

RECORD BTV=rtmpdump -r "rtmp://46.10.150.111:80/alpha" -a "alpha" -f "WIN 11,5,502,149" -W "https://www.btv.bg/static/bg/shared/app/flowplayer/flowplayer.rtmp-3.2.13.swf" -p "https://www.btv.bg/live/" -y "alpha" -o BTV.flv

Запазваме файла и стартираме програмата.
Ето кратко видео, как записвам видео стрийм на телевизия BTV:

Примерния settings.ini файл за този тест може да се изтегли от тук: settings.ini-Record_BTV.rar
Архива се разархивира в директорията на програмата и се заменя стария файл settings.ini.

Добавяне на нов стрийм, плейване с ffplay и запис до файл с ffmpeg

В списъка с телевизии ми липсва CityTV. Реших да го добавя, но ми се искаше да добавя и опция за запис на клиповете. Единствения проблем е, че CityTV използва формат, който не се поддържа от rtmpdump (всъщност не е точно така, но да не задълбаваме). За това трябваше да добавя нов плеър, който да плейва стрийма от сайта на City.bg. Изтеглих архив с пакета ffmpeg и разархивирах двата инструмента ffplay.exe и ffmpeg.exe. Нищо друго не ми трябва. След това се заиграх с settings.ini.

За да се добави тази нова телевизия се отваря оригиналния settings.ini в текстов редактор и се добавя един ред, който указва да програмата как да плейне City TV с плеъра ffplay:

CityTV=ffplay https://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8

Остана да се добави опция и за запис на тази телевизия. Това го правя с ffmpeg, като отново добавям един ред в settings.ini:

RECORD City=ffmpeg -i https://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8 -acodec copy -vcodec copy -f mp4 City.mp4

Ето и видеото, което показва как плейвам стрийма от City с ffplay и след това го записвам с ffmpeg:

Примерния settings.ini файл за този тест може да се изтегли от тук: settings.ini-Play_and_Record_video_City.rar
Архива се разархивира в директорията на програмата и се заменя стария файл settings.ini.

ВАЖНО: При запис на поточното видео е важно конзолния прозорец да се затвори с командата Ctrl + C – това ще затвори правилно записваното видео. Ако този прозорец се остави отворен и се затвори само прозореца на програмата, то записа ще продължи докато компютъра не се изключи!

Програмата е изключително простичка. Всъщност е GUI с възможност за ползване на различни инструменти за плейване и запис на поточно видео. Но пък мен ми е много удобна.

Share and Enjoy !

Shares

rtmpdump tutorial – урок за начинаещи

Ако искам да гледам и записвам онлайн телевизии или други стриймове, често използвам инструмента rtmpdum. Много добър инструмент, но се използва в конзолен режим или през промпта на Windows. В тази статия ще покажа няколко примера, как използвам rtmpdump за да гледам и записвам български онлайн телевизии. Операционната система под която ще покажа примерите е LinuMint 18.1, която е Ubuntu базирана. Като исключим някои подробности по инсталацията, техниките са абсолютно същите и под Windows с тази разлика, че инструментите трябва да се намират в една директория.

Подготовка за дъмпване на онлайн видео стриймове

За начало е добре да инсталираме на flash-player за Ubuntu:

sudo apt-add-repository multiverse
sudo apt-get update
sudo apt-get install flashplugin-installer

След това инсталираме rtmpdump и някакъв лек видео плеър, който позволява подаване на команди през конзолата. Mplayer или VLC са доста добър избор, затова аз ще използвам mplayer:

sudo apt-get install rtmpdump
sudo apt-get install mplayer

Да бучнем и един VLC плеър – ей така да има. Понякога с него картината е по-добре.

sudo apt-get install vlc

Създаваме една директория rtmpdump_tests в home-директорията и позиционираме конзолата в нея:

mkdir rtmpdump_tests
cd rtmpdump_tests

Вече сме готови да стартираме нашите rtmpdump тестове, но преди това нека да видим какви са основните аргументи, които ще ползваме от хелпа на програмата:

rtmpdump -h

--rtmp|-r url           URL (e.g. rtmp://host[:port]/path)
--playpath|-y path      Overrides the playpath parsed from rtmp url
--pageUrl|-p url        Web URL of played programme
--app|-a app            Name of target app on server
--swfVfy|-W url         URL to player swf file, compute hash/size automatically
--flashVer|-f string    Flash version string (default: "LNX 10,0,32,18")
--quiet|-q              Suppresses all command output.
--flv|-o string         FLV output file name, if the file name is - print stream to stdout
--debug|-z              Debug level command output.

Мисля, че хелпа ясно показва кой аргумент за какво се ползва. Но най-добре да разгледаме няколко примера, които ще изяснят нагледно употребата им, но ще внеса малко пояснения:
-r – адреса на RTMP-сървара
-y – файла или името на стрийма, който плейва сървара
-p – адреса на WEB-страницата от която се излъчва видеото
-a – името на приложението, което плейва стрийма. Много често то е записано в адреса на rtmp-сървара. Примерно в rtmp://rd.xxxxdn.com:2016/fls, този аргумент е fls.
-W – това е флаш плеъра с контролите, който плейва стрийма. Обикновено това е swf-файл. Понякога в този файл се съдържа и парола за отключване на стрийма.
-f – флаш версията с която плейваме стрийма. Можем да използваме Windows (“WIN 18,0,0,232”) или Linux (“LNX 10,0,32,18”) версии.
-q – не е важна команда. Пропуска показването на допълнителната информация при изпълнение на командите. Използвам я, за да виждам по-бързо това, което ме интересува.
-o – записва стрийма в *.FLV файл, който в последствие можем да качим в Youtube или просто да си запазим някое тв-предаване във файл.
-z – много важна команда. Често показва какъв ни е проблема, когато някой стрийм не иска да се дъмпне.

Дъмпване на онлайн телевизия – пример 1

Аз не гледам много телевизия, но напоследък ми се случва да си пускам OnAir. Харесват ми репортажите, публицистиката и предаванията за култура и спорт.
Адреса за онлайн гледане на телевизията е: https://www.bgonair.bg/tvonline

Важно е да отбележим, че много често не е нужно да стартираме Wireshark, Fiddler или друга тежка бойна техника, за да дъмпнем някое поточно видео. Достатъчно да е поразгледаме сорс-кода на страницата, която излъчва видеото.

Web page source - rtmp address

В случая ще прегледам сорс-кода и ще тестваме, дали параметрите в него са достатъчни. Ще използвам браузера Firefox. Отваряме сорса на https://www.bgonair.bg/tvonline , натискаме клавишната комбинация за търсене Ctrl+F и пишем rtmp.

Виждаме JavaScript код с параметри, които се подават на SWF-плеър, който стартира адрес някакво поточно RTMP-видео. Вероятно това е търсеното видео на OnAir. Раглеждайки този пасаж от сорс-кода на страницата, можем да изкараме следните параметри с които да стартираме rtmpdump:

-r rtmp://lb.cdn.bg:2006/fls
-y bonair.stream?at=66981d3d13decfde7efc2e1fa19eb2b4
-W https://i.cdn.bg/flash/jwplayer510/player.swf
-a fls/

Допълнително знаем и адреса на страница, която плейва видеото. Значи имаме и параметъра -p:

-p https://www.bgonair.bg/tvonline

Да направим първия тест с тези параметри, като задължително включим дебъгването, за да ни покаже, ако има някакъв проблем:

rtmpdump -r rtmp://lb.cdn.bg:2006/fls -y bonair.stream?at=66981d3d13decfde7efc2e1fa19eb2b4 -a fls/ -W https://i.cdn.bg/flash/jwplayer510/player.swf -p https://www.bgonair.bg/tvonline -z

rtmpdump - debug error

Мда… Неуспешен първи опит, но пък ни донесе ценна информация за грешката. Да разгледаме какво изплю конзолата:

Интересният ред е този:

redirect, STRING:	rtmp://edge12.cdn.bg:2006/fls>

Той ни покзва, че rtmp-адреса в страницата е с пренасочване към адрес rtmp://edge12.cdn.bg:2006/fls. Ок, тогава да направим нов опит с този нов адрес. Този път изпълнени с енстусиазъм и увереност, премахваме дебъгването и закачаме потока с пайп към mplayer. Важно е да се отбележи, че понякога mplayer иска предваретелен кеш на потока, или пък не иска. Това зависи и от хардуера в машината. Обикновено слагам кеширането, което препоръчват разработчиците и слагам опцията , която казва на mplayer, че приема пайп поток, а не файл.

rtmpdump -r rtmp://edge12.cdn.bg:2006/fls -y bonair.stream?at=66981d3d13decfde7efc2e1fa19eb2b4 -a fls/ -W https://i.cdn.bg/flash/jwplayer510/player.swf -p https://www.bgonair.bg/tvonline | mplayer -cache 8192 -

В конзолата се вижда, че mplayer започва да кешира видеото. Трябва да изчакаме, докато кешира около 20%, след което се появява прозореца с видеото.
От опит знам, че много често повечето параметри не са необходими. Достатъчно е да знаем само rtmp-сървара и името на стрийма. Нека да пробваме, като разкараме и кеширането на mplayer.

rtmpdump -r rtmp://edge12.cdn.bg:2006/fls -y bonair.stream?at=66981d3d13decfde7efc2e1fa19eb2b4 | mplayer -

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

Ако искаме да запазим видеото във файл, тогава премахваме пайпа към mplayer и го заменяме с командата -o some_file.flv.

rtmpdump -r rtmp://edge12.cdn.bg:2006/fls -y bonair.stream?at=66981d3d13decfde7efc2e1fa19eb2b4 -o onair.flv

Видео, което показва стъпките в този пример:

Дъмпване на онлайн телевизия – пример 2

BTV rtmpdump

Предлагам да затвърдим материала, като дъмпнем още някоя телевизия. В този пример ще покажа как се дъмпва онлайн стрийма на BTV. Подхода е същият, дори може да се каже, че е още по-лесно. Отваряме страница с онлайн видеото: https://www.btv.bg/live/ и търсим в сорс-кода за стринг rtmp. Виждаме, че го има на няколко места, но нас ни интересува конкретно този пасаж:

Сега остава да сглобим командата за rtmpdump и да тестваме. Но ще използвам VLC-плеара, защото тоя mplayer нещо ме нерви с поведението си, множеството ръчни настройки и клавишни комбинации.

rtmpdump -r rtmp://hls.btv.bg.sof.cmestatic.com:80/alpha -y alpha | vlc -

И то взе, че тръгна! 🙂 Дори нямаше пренасочване.
Ако искаме да съхраним до файл, пак като по-горе, добавяме -o some_file.flv

Ето кратко видео и с упражнението – сваляне на онлайн видео от BTV с rtmpdump:

За следващото упражнение ще трябва да намеря нещо по-завързано.

Дъмпване на онлайн телевизия – пример 3

За този пример ще дъмпнем БНТ. Ще го направя под Windows, но тъй като знам, че стрийма от БНТ изисква токен (secure token – ключ за стартиране), за да се дъмпне, ще ни трябват някои допълнителни инструменти:
Firefox – Web браузер. Избирате се езика и версията – 32 или 64bit.
Firebug – добавка (addon) за Firefox, който ще ни помогне доста за разлистване на сорс кода на страницата.
JPEXS Free Flash Decompiler – този безплатен инструмент декомпилира *.SWF файлове до изходния сорс-код.
Notepad++ – текстов редактор, който може да търси в множество файлове.

rtmp firebug parameters

Първа да разузнаем кои параметри можем да видим в сорс кода на страницата. Посещаваме с Firefox страницата на БНТ, която излъчва стрийма: https://tv.bnt.bg/bnt1/16×9/
Отваряме сорс кода и търсим за SWF. Оказва се, че няма такъв файл, значи е набутан в някой от JavaScript файловете и ще трябва по задълбочено ровичкане с Firebug.
Натискаме F12 за да заредим панела на Firebug. Избираме показалката за “Inspect element” и кликаме върху флаш прозореца с видеото.
След като се лисне сорса търсим в редовете JavaScript параметрите, които се подават на плеъра. Ето ги гадините:

До тук имаме следните параметри:
-r rtmp://lb.cdn.bg:2020/fls
-y bnt.stream?at=42516e922eacee82fb021dbc64b9165b
-a fls/
-W https://cdn.bg/eflash/jwplayer510/player.swf
-p https://tv.bnt.bg/bnt1/16×9/

Да направим първи тест, за да проверим, дали няма пренасочване или някакъв друг проблем:

rtmpdump -r rtmp://lb.cdn.bg:2020/fls -y bnt.stream?at=42516e922eacee82fb021dbc64b9165b -z

Резултата е:

DEBUG: Property: <Name:              level, STRING:     error>
DEBUG: Property: <Name:               code, STRING:     NetConnection.Connect.Rejected>
DEBUG: Property: <Name:        description, STRING:     Connection failed: Application rejected connection.>
DEBUG: Property: <Name:                 ex, OBJECT>
DEBUG: (object begin)
DEBUG: Property: <Name:           redirect, STRING:     rtmp://edge11.cdn.bg:2020/fls>

Виждаме, че имаме пренасочване с redirect към rtmp://edge11.cdn.bg:2020/fls. Тогава да заменим адресите и да пробваме пак:

rtmpdump -r rtmp://edge11.cdn.bg:2020/fls -y bnt.stream?at=42516e922eacee82fb021dbc64b9165b -z

Този път се получи друга грешка:

DEBUG: Property: <Name:              level, STRING:     error>
DEBUG: Property: <Name:               code, STRING:     NetConnection.Connect.Rejected>
DEBUG: Property: <Name:        description, STRING:     Connection failed: Application rejected connection.>
DEBUG: Property: <Name:           clientid, NUMBER:     714507177.00>
DEBUG: Property: <Name:        secureToken, STRING:     a8a4a8dcd4b74063e45148602dfebe8a4d24717532878cfaa2a1e87aaa0e58b48f0df073>

Появи се secureToken стринг, което означава, че видеото има нужда от този токен (ключ, парола), за да се стартира.
Как можем да разберем кой е този ключ и къде е този ключ. Понякога този токен се намира в HTML кода, друг път е набутан в SWF-файла. Има случаи при които видеото е защитено с двойка код + ключ. В един от следващите уроци ще покажа и случай, когато ключа е обфускейтнат и не се вижда никъде в явен вид, освен чрез хекс-редактор. В случая проверих и знам, че токена се намира в SWF-файла. За да го видим, първо трябва да декомпилираме SWF-файла до изходния му код. За тази цел сваляме swf-файла https://cdn.bg/eflash/jwplayer510/player.swf с някой даунлоадер или директно с браузера и го отваряме в програмата JPEXS Free Flash Decompiler.
Слектираме директорията със ActionScript-овете и я екстрактваме:

ActionScript export
secureToken

Сега отваряме програмата Notepad++ и избираме от менюто Search -> Find in files…, избираме директорията в която да рови, като оставяме за филтър “*” за да прерови всички файлове. Критерий за търсене ни е “securetoken”. Попадаме на тези ценни редове:

БИНГО – B@1R1st1077! Точно това е, което ни трябва!
Правим два-три опита с останалите параметри и виждаме, че тази команда стартира видеото:

rtmpdump -r rtmp://edge11.cdn.bg:2020/fls -y bnt.stream?at=42516e922eacee82fb021dbc64b9165b -p https://tv.bnt.bg/bnt1/16x9/ -T B@1R1st1077 | mplayer -

Ето и видеото, което показва как се дъмпва БНТ:

Следващия стрийм трябва да е още по усложнен. Може би трябва да покажа, как се разбират обфускейтнатите пароли, въпреки, че това не е много за начинаещи. Не е сложно, но не съм сигурен, дали е за масово споделяне. Може би ще дам подсказки за по-любознателните.

Дъмпване на онлайн телевизия – пример 4

[TODO]

Share and Enjoy !

Shares