Семь удивительных чудес с помощью программы FFmpeg

FFmpeg — многофункциональное, кросс-платформенное решение для записи, конвертации и воспроизведения аудио и видео. Программа умеет очень многое, но при этом распространяется под свободной лицензией 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.

Ваша оценка: Нет Средняя оценка: 5 (6 votes)
pomodor

А еще FFmpeg просто обожают разработчики принципиально новых видеоплееров под Android. Берем FFmpeg, пишем кривой гуй, объявляем программу бесплатной и ждем пока народ бесплатно отловит все баги, объявляем программу платной. Profit! Половина платных видеоплееров паразитирует на FFmpeg и это еще одно, восьмое, чудо. ;)

Ваша оценка: Нет Средняя оценка: 5 (5 votes)

И не только на Android. Под виндой такого добра тоже хватает. Правда, оно частенько распространяется бесплатно.

Ваша оценка: Нет Средняя оценка: 5 (2 votes)

А вот как быть с ошибкой "bind(port 8090): Invalid argument" при запуске ffserver ?

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
pomodor

Тут у одного юзера сходная проблема образовалась. Говорит, что просидел бессонную ночь и теперь предлагает патч.

Ваша оценка: Нет

и куда ж этот патч пихать??

Ваша оценка: Нет
pomodor

Самому "пихать" ничего никуда не нужно. Этим занимается программа patch. Если опыта сборки из исходников нет, то поищите готовые сторонние сборки свежих версий под ваш дистрибутив.

Ваша оценка: Нет

да нет, из исходников соберу без проблем. Но нет познаний в Си. Надо, так понимаю, просто скомпилировать этот патч? Или воткнуть куда-то в исходники, а потом запускать ./compile?

Ваша оценка: Нет

все, победил)

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.