FFmpeg

Предупрежу сразу: речь пойдет хотя и о мощнейшей, но все же консольной программе. Кажется, к ней есть графические надстройки, но я их рассматривать даже не буду. Я - поэт консоли, мне удобнее писать там. Так лучше ощущается именно диалог с компьютером. Ты - ему, в консоли, параметрами командной строки: «голубчик, не будете ли так любезны сконвертировать видео, ужав кадр вчетверо, качеством получше и звуком MP3?» Он - тебе, ошибкой: «да ради бога, любезный, только вы имя файла забыли написать!»

Впрочем, я отвлекся. Предыстория такова: пришлось мне иметь дело с файлами офонаренно крутого качества и огромного размера. Невелика беда, думаю я, и запускаю простейшую программу работы с видео - VirtualDub. Однако тот рушится при попытке открыть файл. Странно... Хорошо, а вообще я могу посмотреть эти файлы? Двойной клик... Оп-па! Свежий «родной» Quicktime показывает битый пиксель Малевича во весь экран и воспроизводит звук. Большего добиться невозможно. Другие плееры тоже воротят нос. Может, кодеки устарели? Скачиваю новые, ставлю... Результат не меняется. Откопав в свойствах файла стратегические важные слова «XDCAM EX» и «xdvb», я углубился в поиск...

Спустя несколько часов копания в Интернете и пробования разных конвертеров я было совсем отчаялся, но тут по ссылкам на запрос «xdvb codec» я наткнулся на список кодеков, поддерживаемых плеером MPlayer. Галопом прискакал на главную страницу и скачал MPlayer. Распаковываем, запускаем... И что бы вы думали? Завелось и все показало с пол-пинка! Показывает, звучит - это уже огромный прогресс. Теперь надо бы выяснить, как он это делает, и возможна ли перекодировка. Вспоминаю, что в таблице кодеков напротив «xdvb» стояло «FFmpeg MPEG-2». Что-то мне это смутно напоминает... Но что?..

Поиск по магическому слову «ffmpeg» привел меня, разумеется, на страницу проекта FFmpeg. Тут-то я и вспомнил, где слышал про него: это мощнейший комплекс по переработке любого видео и аудио из любого формата в любой. Полистав документацию, уже через пять минут я получил сжатое перекодированное видео, открывающееся везде. Да еще и без паразитной «гребенки». А всего-то и делов, что попросить вежливо: «ffmpeg -deinterlace -sameq -i "Cam A.MOV" -s 960x540 -acodec libmp3lame -ac 2 cam_a.avi». Ну не красота ли?

Так что повторюсь - вещь мощнейшая. Ей и преобразование FLV в AVI можно сделать, можно и обратную процедуру (AVI в FLV) организовать... А то и такую неизвестную мультимедийную продукцию скормить и смотреть, как оно изящно пережевывается в удобоваримый вид.
alcostar.ru (03 авг 2010г, 18:26) #
нафик консоль, ща интерфейс накидаю
QoSyS (03 авг 2010г, 18:38) #
Среди всех перекодировщиков, с которыми когда-либо имел дело, ffmpeg является лучшим. У меня он уже давно занял нишу консольных медиаутилит вместе с различными mencoder, ImageMagick, etc.

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

Как-то тоже расписывал свои соображения по поводу ffmpeg.
V.exeR (03 авг 2010г, 18:39) #
u1030 alcostar.ru: да есть у него GUI, отдельная прога... Там забодаешься все ключи учитывать, по мне так это как раз тот вариант, когда лучше консоль :D
QoSyS (03 авг 2010г, 18:40) #
u1030 alcostar.ru:
нафик консоль, ща интерфейс накидаю


Google first, then play.
V.exeR (03 авг 2010г, 18:45) #
u1000 QoSyS: кстати да, видел твой пост. Но там как-то совсем общо, примерно как у меня: «ОНО УМЕЕТ», и все :D
Y (03 авг 2010г, 22:01) #
+1 к опенсорсным программам :-)
V.exeR (03 авг 2010г, 22:07) #
u747 Y: ага, только вот мне тут подсказывают, что «за бугром» она немножко незаконная, поскольку многие алгоритмы «добыты» реверс-инженерингом и вообще авторы плюют на патенты некоторых алгоритмов. Хотя лично я поддерживаю создателей, особенно при использовании в личных нуждах. Наглеть в промышленных масштабах (например, строя на этой библиотеке ютубоподобный сайт для зарабатывания денег) по-моему, не стоит.
Y (04 авг 2010г, 00:19) #
u71 V.exeR, понятно. Спасибо. Согласен.
Tatarnikoff (04 авг 2010г, 06:06) #
А DVD в avi он может конвертировать?
V.exeR (04 авг 2010г, 07:21) #
u716 Tatarnikoff: VOB в AVI тоже перегоняет.
i-atemi (04 авг 2010г, 21:06) #
u71 V.exeR, ffmpeg довольно важный компонент в UNIX-среде, на ней очень много программ работает, она у нас как бы родная))). И как я понимаю, с патентами там всё очень хорошо))). Кстати, я нею конвертирую в 3gp для телефона видео. Делает она это много лучше некоторых платных софтин, проверено))). Но мне её приходится самостоятельно собирать из исходников для этого. Как с виндовой версией дело обстояит - не знаю...

А вот в flv она не очень хорошо перегоняет... Вернее, с опциями по умолчанию. Например, если gop поставить 100, то будет уже лучше, но не фонтан всё равно... В flv лучше в avidemux делать. Я давно о ней писал на ли.ру. Это программа, типа VirtualDub, но изначально Линуксовая. Умеет сохранять намного больше форматов файла (например mp4, mpg, flv, ogm). Есть версии для Линукс и Виндовс.

А вообще, ffmpeg может даже некоторые функции редактора заменять при кодировании. Например, чтобы отрезать первые 30 секунд видео, можно воспользоваться опцией -t «00:00:30.000». А чтобы обрезать видео по краям:

-croptop 12 -cropbottom 10 -cropleft 16 -cropright 12

обрежет сверху и справа по 12 пикселей, снизу 10 и слева 16 :)
i-atemi (04 авг 2010г, 21:08) #
Упс. С опцией обрезания по времени вышла накладочка. Твой редактор комментариев заменил обычные кавычки на книжные))). Использовать, конечно же, надо обычные)))
V.exeR (04 авг 2010г, 21:10) #
u1005 i-atemi: ага, я маны от нее долго курил, когда нашел. Там даже скриншоты можно делать, это я тоже вычитал :D Насчет патентов - ну, за что купил, за то продал... А FLV я не делаю, но за информацию о avidemux спасибо!
i-atemi (04 авг 2010г, 22:21) #
u71 V.exeR, ffmpeg собирается с разными опциями, их там очень много (vj;yj ghtldfhbntkmyj ghjcvjhtnm gj ./configure --help зайдя в каталог с исходниками. С их помощью при сборке можно запрещать или наоброт включать в пакет некоторые кодеки. Так же есть «подушка безопасности» в виде --enable-gpl и --enable-nonfree. Если их не указать, то гарантировано не будут включены патентно-опасные кодеки. То есть, если не указал --enable-gpl, то будешь уверен, что GPL твой пакет не нарушит))).
i-atemi (04 авг 2010г, 22:24) #
Пардон :D . (vj;yj ghtldfhbntkmyj ghjcvjhtnm gj это «можно предварительно просмореть по» .
alexkr91 (08 авг 2010г, 17:35) #
Сложнее сказать что FFmpeg не умеет делать с видео...
V.exeR (10 авг 2010г, 19:40) #
u1039 alexkr91: истинно так :D