вторник, 23 января 2007 г.

Как конвертировать .flv в .mpg (.avi).

Вы наверное замечали, что самый популярный видео-сервис YouTube предоставляет видеофайлы в специальном Flash-формате - .flv. При попытке скачать такой ролик с YouTube с помощью плагина к Firefox VideoDownloader, последний предложил заодно скачать и FLV-Player для просмотра данного видео. К совету я не прислушался - хватит с меня уже плееров. Решил пойти другим путем. А именно - перекодировать с .flv в .mpg (.avi). Но не тут то было, VideoDownloader ролик так и не скачал. Таким образом, имея лишь ссылку на понравившееся мне видео и желание его скачать, обратился к Google. И нашел.
Программа называется GenTube. На самом деле это обычный скрипт который скачивает и перекодирует видео-файл с формата .flv в .mpg.




Для нормальной работы скрипта нужны следующие программы:
Kdialog, ffmpeg, player of mpg ( mplayer), wget. Тут вроде понятно. Kdialog осуществляет диалог скрипта с пользователем, wget - загружает, ffmpeg - перекодирует и mplayer - проигрывает.
На сайте разработчика можно найти различные версии скрипта и на разных языках. Я остановился на этой - (скачать GenTube-1.0-Jan.tar.gz ).

Работа с данной программой:

Распаковываем скачанный архив и заходим в созданную директорию:


$ tar xzvf GenTube-1.0-Jan.tar.gz
$ cd GenTube-1.0-Jan/


Просмотрев файл README (он, оказывается, на испанском) и описания на сайте - запускаем:


$ ./gentube.sh


Скрипт запускает Kdialog, где нужно выбрать сначала язык интерфейса (English), а потом - Download Video



и ввести URL видео-ролика с YouTube. Скрипт сам запустит, скачает и перекодирует видео. После этого в Kdialog можно нажать Play video и просмотреть ролик в формате .mpg.
Довольно легко и удобно!

В процессе поиска столкнулся с еще некоторыми методами.
1. Скачать видео-ролик в формате .flv и перекодировать с помощью утилиты mencoder:

mencoder input.flv -ofps 15 -vf scale=300:-2 -oac lavc -ovc lavc -lavcopts vcode c=msmpeg4v2:acodec=mp3:abitrate=64 -o output.avi

2. Скачать видео-ролик в формате .flv и перекодировать с помощью утилиты ffmpeg:

ffmpeg -i videotoconvert.flv -ab 56 -ar 22050 -b 500 -s 320x240 output.mpg

(Источник)
3. Попробовать скрипты, написанные на Perl или Bash с сайта bashscripts.org.

Все эти три метода я не проверял по двум причинам:
а. Задача была выполнена с помощью GenTube;
b. Я не смог загрузить файл .flv с YouTube вручную :(.
Вот что выдает wget:

Resolving www.youtube.com...
failed: Name or service not known.

Но GenTube также использует wget и вроде бы без дополнительных ключей. В общем, если Вы сможете загрузить файл с YouTube, то перекодировать можно любым из указанных выше способов.

21 коммент.:

vonderer@darkstar комментирует...

По поводу расширения: UnPlug использовать куда удобнее и он не навязывает выкачивания чего бы то ни было.

Tigro комментирует...

А без перекодирования он mplayer'ом играется?

serhiy cherevko комментирует...

Огромное спасибо за ссылку на расширение. Видео с YouTube скачал без проблем. Но вот перекодировать с помощью mencoder и ffmpeg пока не получилось. Это нужно посидеть над man ffmpeg. Пока ограничусь GenTube.

serhiy cherevko комментирует...

В моем случае играется, но нельзя перемотать (бегунок прокрутки стоит в конце). При попытке мышкой его продвинуть, просмотр умирает. В VLC и Kaffeine не проигрывается.

virens комментирует...

Перекодирую обычным mencoder-ом, всё нормально. Выкачиваю в Огнелисе VideoDownloader.

serhiy cherevko комментирует...

Даже не знаю что сказать. У меня в огнелисе VideoDownloder выкачивать отказался напрочь. UnPlug - выкачивает без проблем. А на счет mencoder и ffmpeg, последним пользоваться уже научился. Как-то раньше никогда это не интересовало.

ulmen комментирует...

а звук с видео синхронизирован нормально при пережатии? а то я скачал когда то несколько клипов, но звук съезает при просмотре мплеером :( пережимать еще не пробовал.
кстати, последние версии мплеера нормально перематывают flv

serhiy cherevko комментирует...

to ulmen
Все синхронно! Для статистики еще несколько клипов перекодировал. Все работает. Способ с ffmpeg тоже работает. Проверил. Mencoder выдает ошибку.

Eugene комментирует...

Я скачиваю видео с помощью экстеншна Fast Video Download, который внедряет в код страницы ссылку "скачать видео" прямо под ютубовым окошком.
А перекодирую, если нужно, прогой ffmpeg2theora - ей просто нужно указать файл и она создает ogg с таким же названием в той же папке, поддерживает пакетную обработку.
Да и как-то приятнее кодировать не в скучный ави, а в наш, опенсорсный, огг.

serhiy cherevko комментирует...

Спасибо всем. Сколько всего нового узнал за эти пару дней. Попробовал ffmpeg2theora. Действительно все просто и все работает. Теперь можно экспериментировать :).

ulmen комментирует...

спасибо, буду пробовать

ulmen комментирует...

проверил, синхронно все :) спасибо.

serhiy cherevko комментирует...

Нашел еще один способ загрузки видео с Youtube. На этот раз просто с командной строки. Скачиваем скрипт
http://www.arrakis.es/%7Erggi3/youtube-dl/youtube-dl
и кидаем его например в ~/bin/
дальше в командной строке набираем youtube-dl http://youtube......

Анонимный комментирует...

Вот пользуйтесь :)
В качестве параметра на вход задаем урл youtube и имя выходного файла

#!/bin/bash

wget -c -S http://youtube.com/get_video.php\?`curl -s $1 | grep player2.swf | cut -f2 -d? | cut -f1 -d\"` 2> /tmp/y1;

uf=`grep Location /tmp/y1 | sed "s/.*Location: //g"`;

wget "$uf" -O /tmp/y.flv 2> /dev/null;

ffmpeg -i /tmp/y.flv -ab 48 -ar 22050 -acodec mp3 -b 100 -s 320x240 -vcodec xvid /tmp/$2.avi 2> /dev/null;

rm /tmp/y.flv;

rm /tmp/y1;

exit

FRAGIL3 комментирует...

Спасибо большое))
Я помню пользовался этой программой, но перекодировать не получалось(( Тут попробовал тупо с помощью ffmpeg, теперь всё путём))

abouticons комментирует...

Попробуй http://softtelecom.ru/mb.htm
но это конвертация сразу с инета, но зато с самых популярных сайтов

calibra комментирует...

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

Flv player комментирует...

Gen Tube is the best to download videos from YouTube, it works great! Thanks for sharing this post........

Cheap Viagra комментирует...

К совету я не прислушался - хватит с меня уже плееров. Решил пойти другим путем. А именно - перекодировать с .flv в .mpg (.avi). Но не тут то было, VideoDownloader ролик так и не скачал. Таким образом, имея лишь ссылку на понравившееся мне видео и желание его скачать, обратился скачивает и перекодирует видео-файл с формата .flv в .mpg.

Canadian Viagra комментирует...

последний предложил заодно скачать и FLV-Player для просмотра данного видео. К совету я не прислушался - хватит с меня уже плееров, Для нормальной работы скрипта нужны следующие программы:
Kdialog, ffmpeg.

Yuri комментирует...

Добрый день!
"2. Скачать видео-ролик в формате .flv и перекодировать с помощью утилиты ffmpeg:
ffmpeg -i videotoconvert.flv -ab 56 -ar 22050 -b 500 -s 320x240 output.mpg"
Опишите, плиз подробно, как кодировать .flv в aiv с помощью WinFF. То есть, как для чайника.
Я установил WinFF, запустил программу, добавил файл .flv и там куча настроек:
Конвертировать и дроп-лист
Пресет и дроп лист
а также видео и аудио настройки.
Напишете, что должно быть в каждом из окошек.
Спасибо.