Содержание

Работа с мультимедийными файлами

Получение из одной картинки видео заданной продолжительности (10 секунд)

ffmpeg -filter_complex aevalsrc=0 -loop 1 -i picture.png  -t 10 -vcodec huffyuv -y out.avi

Комбинирование нескольких видео в одно (мозаика)

Исходные видео:

  • 1-up.avi - Размер 1920x768 (должно будет располагаться сверху)
  • 2-bt.avi - Размер 1920x312 (должно будет располагаться снизу)

Необходимо получить видео с общим размером 1920x1080.

Команда:

ffmpeg -i 1-up.avi -i 2-bt.avi -filter_complex "nullsrc=size=1920x1080 [base];  [0:v] setpts=PTS-STARTPTS, scale=1920x768 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=1920x312 [lowerleft]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][lowerleft] overlay=shortest=1:y=769" -vcodec huffyuv -acodec copy -y 3-all.avi

Подробнее здесь.

Добавить логотип в видео

ffmpeg -i input.mkv -i logo.png -filter_complex "[0:v][1:v]overlay=8:8" -vcodec libx264 -acodec ac3 -y output.mkv

input.mkv - Входной видео файл
logo.png - Файл логотипа
output.mkv - Выходной видео файл
8:8 - координаты логотипа (0:0 - верхний левый угол).

Ещё варианты

Сжатие динамического диапазона для аудио (DRC)

Выравнивает громкость аудио.

sox input.wav output.wav compand 0.3,.8 -120,-10 -10 -100 .1
Исходник и результат:
Аналогичный фильтр в AudaCity - "Компрессор...":

Для ffmpeg.

ffmpeg -i input.ts -vcodec copy -af "compand=0 0:1 1:-60/-24 -48/-12 0/0:6:2:0:0" -acodec ac3 output.mkv
Отсюда, отсюда и отсюда

Собрать анимационный GIF из видеофайла

mplayer -vo jpeg input.avi
  • Создаёт кучу JPG файлов в текущей папке.
  • input.avi должен быть того разрешения, которое необходимо для GIF.
  • Частота кадров должна соответствовать задержке анимации.
convert *.jpg -delay 100 -layers optimize output.gif
  • Собирает из кучи JPG файлов анимированный output.gif.
  • Задержка между картинками в GIF файле - 100 миллисекунд, что соответствует 10 кадров секунду.

А можно ещё проще:

ffmpeg -i input.avi output.gif

Более качественный вариант:

ffmpeg -i input.avi -r 10 -f image2pipe -vcodec ppm - | convert -delay 5 -loop 0 -layers Optimize - output.gif

Прямое и обратное проигрывание.
Прямой файл:

convert in.avi forward.gif

Обратный файл:

convert in.avi -reverse reverse.gif

Слияние полученных файлов:

convert -coalesce forward.gif reverse.gif out.gif

Просмотр потока с ТВ тюнера на VLC

vlc v4l2:///dev/video0 :v4l2-standard=SECAM :input-slave=alsa://hw:1,0
/dev/video0 - тюнер
SECAM - стандарт вещания
hw:1,0 - аудио устройство ("звук по шине PCI")

Перекодировка тегов mp3 файлов из CP1251 в UTF8

find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1
Необходим пакет python-mutagen
forum.russianfedora.ru

Захват части экрана в видеофайл

Изменено 25 мая 2013г. (Fedora 18).

ffmpeg -y -t 600 -s 800x600 -f x11grab -i :0.0+100,200 -vpre libx264-lossless_ultrafast /mnt/cap/screen.avi

Опции:

-y                               - Перезаписывать существующий файл
-t 600                           - Продолжительность записи в секундах
-s 800x600                       - Размер захватываемой области
-f x11grab                       - Устройство захвата (экран)
-i :0.0+100,200                  - Параметры устройства захвата. Номер экрана - :0.0, координаты захватываемой области - +100,200
-vpre libx264-lossless_ultrafast - Предустановки видеокодека (быстрый способ, почти без сжатия)
/mnt/cap/screen.avi              - Сохраняемый файл

Содержимое файла предустановок ("/usr/share/ffmpeg/libx264-lossless_ultrafast.ffpreset"):

vcodec=libx264
flags=+loop+cgop
partitions=-parti8x8-parti4x4-partp8x8-partp4x4-partb8x8
me_method=dia
subq=0
me_range=16
g=250
keyint_min=25
sc_threshold=40
i_qfactor=0.71
b_strategy=1
qcomp=0.6
qmin=0
qmax=69
qdiff=4

Ролик, снятый таким способом (youtube.com, 1920x1080)

Со звуком:

ffmpeg -y -t 600 -s 1920x1080 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i pulse -vpre libx264-lossless_ultrafast /mnt/cap/screen.avi

Весь экран с кодеком HuffYUV:

ffmpeg -y -s 1920x1080 -f x11grab -i :0.0+0,0 -vcodec huffyuv -y screen.avi

Сохранение в wmv без перекодирования

Сохраняются дорожки 1 (audio) и 4 (video):

mencoder input.wmv -of lavf -ovc copy -oac copy -aid 1 -vid 4 -o output.wmv

Кодирование звукового файла DTS -> AC3

Исходный файл DTS (audio.dts):

Команда:

ffmpeg -i audio.dts -ab 448000 -ar 48000 -ac 6 -acodec ac3 -y audio.ac3
Результат AC3 (audio.ac3):

Преобразовать DVD в один vob файл с сохранением всех аудиодорожек.

vobcopy -i VIDEO_TS -l -n 3

-i VIDEO_TS - Папка с структурой DVD.
-l - Возможность создать vob файл размером более 2Гб.
-n 3 - Создавать файл из третьего заголовка.

Параметры DVD можно узнать командой
Краткая информация:

lsdvd VIDEO_TS

Полная информация:

lsdvd VIDEO_TS -x

Параметры аудиофильтра "pan" mencoder.

Нумерация каналов:

0 - Front Left (Передний Левый) - FL
1 - Front Right (Передний Правый) - FR
2 - Rear Left (Задний Левый) - RL
3 - Rear Right (Задний Правый) - RR
4 - Front Center (Передний Центральный) - FC
5 - Subwoofer (Сабвуфер) - SW

Преобразование шестиканального звука в двухканальный, с ослаблением всех каналов, кроме Переднего Центрального:

Входные каналы
FL FR RL RR FC SW
0.5 0 0 0.5 0.5 0 0 0.5 1 1 0.5 0.5
Выходные каналы
L R L R L R L R L R L R

Т.е.:

  • Передний Левый входной на 0.5 громкости в Левый выходной,
  • Передний Левый входной на 0 громкости в Правый выходной,
  • Передний Правый входной на 0 громкости в Левый выходной,
  • Передний Правый входной на 0.5 громкости в Правый выходной,
  • Задний Левый входной на 0.5 громкости в Левый выходной,
  • Задний Левый входной на 0 громкости в Правый выходной,
  • Задний Правый входной на 0 громкости в Левый выходной,
  • Задний Правый входной на 0.5 громкости в Правый выходной,
  • Передний Центральный входной на 1 громкости в Левый выходной,
  • Передний Центральный входной на 1 громкости в Правый выходной,
  • Сабвуфер входной на 0.5 громкости в Левый выходной,
  • Сабвуфер входной на 0.5 громкости в Правый выходной,

Первый параметр устанавливает количество выходных каналов.

-af pan=2:0.5:0:0:0.5:0.5:0:0:0.5:1:1:0.5:0.5

Преобразование 6 → 6 с усилением тыловых и переднего центрального каналов и ослаблением сабвуфера:
-af pan=6:1:0:0:0:0:0:0:1:0:0:0:0:0:0:2:0:0:0:0:0:0:2:0:0:0:0:0:0:2:0:0:0:0:0:0:0.5

Пример для ffmpeg:

ffmpeg -i 4359-rus.dts -ab 128000 -vf pan="stereo: FL<0.5*FL+1.0*FC+0.1*BC+0.1*SL : FR<0.5*FR+1.0*FC+0.1*BC+0.1*SR" -ac 2 -acodec ac3 -y 4359-rus.ac3

Разобрать DVD на файлы по главам.

$ cat dvd-chapters-to-mpg VIDEO_TS 5 7

#!/usr/bin/perl

$folder=@ARGV[0];
$chapter_start=@ARGV[1];
$chapter_end=@ARGV[2];
if ("$folder" eq ""){
	print "\nCommand:\n";
	print "dvd-chapters-to-mpg dvd_folder [chapter_start] [chapter_end]\n";
	exit;
	}
if ("$chapter_start" eq ""){ $chapter_start=1;}
if ("$chapter_end" eq ""){ $chapter_end=$chapter_start;}
for ($i=$chapter_start;$i<=$chapter_end;$i++){
	$chap=$i;
	while (length ($chap)<3) {$chap="0".$chap;}
	print "Chapter - $chap\n";
	`mencoder dvd:// -dvd-device \"$folder\" -chapter $i-$i -ovc copy -oac copy -of mpeg -o $chap.mpg`;
	}
Параметры запуска; dvd-chapters-to-mpg dvd_folder [chapter_start] [chapter_end]
dvd_folder - папка со структурой DVD диска (VIDEO_TS)
chapter_start - начальная глава (5)
chapter_end - конечная глава (7)

Создание скриншотов из видеофайла.

mplayer file.avi -vo png -nosound -sstep 60

Перекодирование файлов ape в mp3.

Преобразование ape в wav:

mac file.ape file.wav

Преобразование wav в mp3:

lame --preset insane file.wav file.mp3

Разрезание файла mp3 на треки (необходим cue файл):

mp3splt -c file.cue file.mp3 -o "@n - @a - @t"

Где @n - номер дорожки, @a - артист, @t - композиция.

Необходимые пакеты, отсутствующие в репозиториях Fedora 18:

mp3splt-2.4.3-11.fc18.x86_64.rpm
mp3splt-gtk-0.7.3-11.fc18.x86_64.rpm
libmp3splt-0.7.3-11.fc18.x86_64.rpm

Исправление и декодинг AVI файлов.

Исправление индексов:

mencoder -idx input.avi -ovc copy -oac copy -o output.avi

Перекодирование 1.mkv в o1.avi (первый проход):

mencoder 1.mkv -nosound -ovc xvid -xvidencopts vhq=1:pass=1:qpel:trellis -o /dev/null

(второй проход):

mencoder 1.mkv -oac mp3lame -aid 1 -ovc xvid -xvidencopts vhq=1:pass=2:qpel:trellis:bitrate=1563 -o o1.avi

Извлечение звуковой дорожки из видео файлов.

mplayer видеофайл.avi -dumpaudio -dumpfile аудиофайл.ac3

Изменение соотношения сторон в заголовке AVI файла.

mencoder -vf dsize=4/3 ...

Соединение avi файлов.

Для соединения двух (и более) avi файлов:

mencoder -oac copy -ovc copy -o out.avi in-1.avi in-2.avi

Указание выходного контейнера видео.

mencoder -of mpeg
mencoder -of help (доступные контейнеры)

Наверх