Для полноценной реализации цели нам потребуются следующие программы:
1. MPlayer и MEncoder (идут вместе, комплектом) версия для Windows. Freeware, не требуют инсталляции.
2. URLSnooper. Freeware, требуется инсталляция. Впрочем, эта программка может быть полезна и безотносительно нашей задачи.
3. Advanced X Video Converter. Shareware, требуется инсталляция. Эту программу использовал я. Возможно, можно использовать и другой конвертер.
4. GoldWave. Shareware, требуется инсталляция. Опять же, возможно, удастся использовать другой звуковой редактор/конвертер.
5. VirtualDub. Freeware, не требует инсталляции.
Также, возможно, потребуется набор кодеков для Windows. Я использовал готовый пакет K-Lite Mega Codec Pack.
Вся идея технологии состоит в захвате URL’а потокового видео и принудительном сохранении этого потока в локальный файл с последующей доработкой полученного файла до нормального видеоролика.
Итак, приступим.
Шаг первый. Добыча ссылки. Идем на сайт Маркизы. В это время URLSnooper уже должен «слушать» сетевую активность. На сайте выбираем нужную передачу (выбирать новости не рекомендую: они разделены на множество файлов по темам выпуска) и запускаем ее просмотр. Долго смотреть не требуется, достаточно того, что бы состоялось подключение проигрывателя к потоку. Закрываем браузер и смотрим в URLSnooper. Здесь нам нужна только ссылка с протоколом mms, а протокол rtsp – это протокол управления потоком, эти ссылки игнорируем. Копируем mms-ссылку в буфер и закрываем URLSnooper, его миссия завершена. Полученная ссылка – эта настоящая ссылка на требуемый ресурс.
Шаг второй. Собственно захват потока. В консоли Windows переходим в каталог MPlayer’а (команда cd). Далее самое интересное. Командой вида (без угловых скобок, конечно):
mplayer –dumpstream –dumpfile <имя_файла> <mms-ссылка>
запускаем процесс закачки. Это может занять продолжительное время, в зависимости от размера файла и скорости соединения. При этом надо следить за тем, происходит ли вообще что-нибудь (идут ли данные), т.к. существует некоторая вероятность самопроизвольного разрыва связи программы и сервера. К сожалению, MPlayer – это программа, перенесенная на Windows из среды Linux. Поэтому она имеет все прелести консольной Linux-программы, не исключая и страшно «удобный» интерфейс. Например, в ней пользователю даже не дается понять, происходит ли закачка вообще, а о таких «мелочах», как счетчик оставшегося времени придется и вовсе забыть. В общем, отработав, программа все-таки даст знать об этом. В результате ее работы и нас появился файл, имя которого мы указали в вышеуказанной команде. Тут надо понимать, что этот файл – это еще не готовый ролик, а всего лишь запись потока. Большинство программ-плееров не будут с ним нормально работать. Правда сам MPlayer работать с таким файлом будет. Кстати, существует и графическая версия MPlayer, по интерфейсу напоминающая старый (6-й) Microsoft Media Player. Но качество изображения в MPlayer просто ужасает. Если с этим смириться, то на этом можно и остановиться. При этом мы привязаны к конкретной (и не очень хорошей) программе-плееру. Однако, думаю, что задача получить нормальный видеоролик еще не решена. Надо превратить «искалеченный» ролик во что-то более пригодное к просмотру. Третий этап. «Лечение» ролика. К сожалению, я не нашел иного способа, как перекодирование. Просто отдаем полученный файл программе Advanced X Video Converter (или любой другой, которая согласится преобразовать «калеченый» ролик) с целью получить файл, пригодный к просмотру на любом плеере. Я использую для этой цели кодек Xvid с параметром качества 2.8-3.0 с неизменным (относительно исходника) разрешением и частотой кадров. При этом размер полученного файла практически соответствует размеру файла потока, и качество тоже практически не страдает (правда, чуть-чуть уменьшается насыщенность цветов, но это нельзя считать однозначным недостатком, т.к. изначальная насыщенность в потоке несколько завышена, IMHO). Но я не настаиваю на этих настройках как на единственно верных.
После преобразования мы получим вполне нормальный файл, но… без звука (быть может, этой проблемы удастся избежать при использовании других конвертеров видео; не знаю, не проверял). Между тем, звук в потоке есть, и если его не удается получить впрямую, но придется идти обходным путем. Здесь опять понадобится MPlayer и сопутствующий ему MEncoder. Для получения файла звука нужно в каталог MPlayer’а (где, как мы считаем, лежит и файл потока) добавить bat-файл, содержащий следующие строки:
del sound.avi
del sound.mp3
mencoder stream.asf -ovc frameno -oac mp3lame -lameopts vbr=3 -o sound.avi
mplayer -dumpaudio -dumpfile sound.mp3 sound.avi
del sound.avi
Команды del служат для удаления старого и временного файлов. Естественно, имена файлов и пути можно при необходимости заменить. Stream.asf – это файл потока. Sound.mp3 – полученная звуковая дорожка. Затем mp3-файл надо преобразовать в файл wav. Сделать это можно в любой специализированной программе, я использовал GoldWave. И последнее действие. Надо наложить полученный звук на видео, полученное из Advanced X Video Converter. Для этого открываем файл видео (не потоковый!) в VirtualDub. Важно не преобразовывать само видео еще раз, поэтому в VirtualDub устанавливаем Video -> Direct stream copy. Затем Audio -> Full processing mode, Audio -> WAV audio… и указываем наш wav-файл. Далее Audio -> Compression… здесь я выбирал MPEG Layer-3 24 kBit/s, 16 Hz, Mono. Дальше Save AVI… Все! Enjoy!
Вот такая технология. Пользоваться осторожно!!! Я намеренно не вдавался в подробности работы некоторых программ: там все просто. Напоследок привожу ссылки на используемые программы:
URLSnooper:
http://www.donationcoder.com/Software/M ... nooper.exe
MPlayer и MEncoder:
http://aist.chgk.info/mplayer_for_aist.zip
Advanced X Video Converter:
http://www.dvd-guides.com/files/XVideoConverter.exe
GoldWave:
http://www.goldwaving.com/downloads/gwave512.exe
VirtualDub:
http://www.divxpro.it/DiVaX/software/sw ... 1.6.14.zip
K-Lite Mega Codec Pack:
http://freesoft.ru/file.html?id=80636&d ... dec152.exe
P.S. Не забывайте, что не только загрузка данных, но и преобразования аудио и видео из формата в формат требуют времени (иногда достаточно много). Так что, терпения и удачи!
Прямая ссылка на архив: http://www.markiza.sk/tv_archiv/
см. RELÁCIE в меню внизу слева и эпизоды справа.
-flamey