— многофункциональное, кросс-платформенное решение для записи, конвертации и воспроизведения аудио и видео. Программа умеет очень многое, но при этом распространяется под свободной лицензией GPL. Специалисты сайта Linuxaria семь самых полезных и интересных случаев использования FFmpeg.
Получить запись в MP3 из файла WAV проще простого:
ffmpeg -i my_audio.wav my_audio.mp3
Создать Flash-ролик из видео в формате MPEG можно следующим образом:
ffmpeg -i my_video.mpeg -s 500×500 my_video.flv
С помощью опции -s можно изменить размер кадра.
Иногда требуется извлечь из видеопотока определенный кадр. Сделать это можно и с помощью FFmpeg:
ffmpeg -i test.mpg image%d.jpg
Весь ролик test.mpg будет разобран на кадры image1.jpg, image2.jpg и т.д. по 25 кадров на каждую секунду видео. Но что делать, если нужно всего несколько кадров и не всего ролика, а только нескольких секунд? На помощь приходят опции -r (число кадров в секунду), -ss (временное смещение) и -t (продолжительность).
ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png
С десятой по пятнадцатую секунду ролика test.mpg будут сниматься отдельные кадры и сохраняться в файлах images00001.png, images00002 и т.д., по 25 кадров в секунду.
Извлечь аудиодорожку в формате MP3 из видео в формате AVI не просто, а очень просто.
ffmpeg -i video.avi -vn audio.mp3
Вы шевелите мышь, открываете и закрываете окна и все это записывается в MPEG. Фантастика? Реальность!
ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg
Мы уже умеем извлекать отдельные кадры из видео. Теперь научимся создавать видео из отдельных кадров:
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
Захватим видео с вебкамеры и сохраним в MPEG-файле с размером кадра 320x240:
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
А теперь то же самое, но еще и со звуком:
ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
Разумеется, на этом чудеса FFmpeg не заканчиваются. FFmpeg позволяет, например, создавать сервера с потоковым вещанием. Полный список чудес можно узнать из .
А еще FFmpeg просто обожают разработчики принципиально новых видеоплееров под Android. Берем FFmpeg, пишем кривой гуй, объявляем программу бесплатной и ждем пока народ бесплатно отловит все баги, объявляем программу платной. Profit! Половина платных видеоплееров паразитирует на FFmpeg и это еще одно, восьмое, чудо. ;)
И не только на Android. Под виндой такого добра тоже хватает. Правда, оно частенько распространяется бесплатно.
А вот как быть с ошибкой "bind(port 8090): Invalid argument" при запуске ffserver ?
у одного юзера сходная проблема образовалась. Говорит, что просидел бессонную ночь и теперь предлагает патч.
и куда ж этот патч пихать??
Самому "пихать" ничего никуда не нужно. Этим занимается программа patch. Если опыта сборки из исходников нет, то поищите готовые сторонние сборки свежих версий под ваш дистрибутив.
да нет, из исходников соберу без проблем. Но нет познаний в Си. Надо, так понимаю, просто скомпилировать этот патч? Или воткнуть куда-то в исходники, а потом запускать ./compile?
все, победил)