Семь удивительных чудес с помощью программы 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.

field_vote: 
Ваша оценка: Нет Средняя: 5 (6 оценки)
Главная тема: 
Названия программ: 
Программное обеспечение: 

Комментарии

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

Оценка: 
Средняя: 5 (5 оценки)

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

Оценка: 
Средняя: 5 (2 оценки)

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

Оценка: 
Средняя: 5 (1 оценка)

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

Оценка: 
Пока без оценки

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

Оценка: 
Пока без оценки

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

Оценка: 
Пока без оценки

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

Оценка: 
Пока без оценки

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

Оценка: 
Пока без оценки

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.