MyTetra Share
Делитесь знаниями!
Консольные команды ffmpeg для основных действий с видео
Время создания: 03.11.2020 14:25
Автор: Zenitur
Текстовые метки: ffmpeg, видео, видеоролик, видеомонтаж, захват, консоль, команда, опции, кодирование
Раздел: Компьютер - Linux - Видео в Linux - FFmpeg
Запись: xintrea/mytetra_syncro/master/base/1604402702nlsyapycq6/text.html на raw.github.com

Часть 1 - захват картинки



Запись видео с экрана - софтовый энкодинг:


ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 0 output.mkv


Где -i pulse - это устройство захвата звука. В данном случае - PulseAudio. В pavucontrol надо поиграйться галочками, чтобы захватывать и микрофон, и аудиовывод одновременно.

Пользователи ALSA в опции -i должны указать hw:0.


Сжатие видео, записанного с помощью софтового энкодинга:


ffmpeg -i output.mkv -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -preset slow -crf 22 -threads 0 our-final-product.mp4


Где -crf это сила сжатия. Чем число ниже, тем лучше качество и больше размер результатируюего файла. Чем выше - тем хуже качество и меньше файл. Нормальные значения - от 18 до 28.


Захват видео с экрана - аппаратный энкодинг:

ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0 -re -f alsa -i pulse -ac 2 -ar 44100 -acodec libfaac -vcodec nvenc -preset hq -tune film -threads 0 output.mkv


Ключик -re не обязателен, он нужен только если видео воспроизводится ооочень быстро! Также мы сразу сжимаем аудио, так как процу не приходится напрягаться на видео.

Дальнейшие примеры будут с софтварным энкодингом.

Запись с экрана со смещением:

ffmpeg -f x11grab -r 30 -s 800x600 -i :0.0+200,100 -re -f alsa -i pulse -ac 2 -ar 44100 -acodec libfaac -vcodec libx264 -preset ultrafast -threads 0 output.mkv


Часть 2 - пост-обработка

Обрезка по времени:

ffmpeg -ss 00:00:45 -t 00:22:17 -i output.mkv -acodec copy -vcodec copy output-2.mkv

ss — с какого момента

t — сколько отрезать (длительность)

Вместо опции -t можно использовать опцию -to, в которой указывается момент, на котором нужно остановиться.

Обрезка по размеру картинки:

ffmpeg -i output.mkv -acodec copy -vcodec libx264 -preset ultrafast -filter:v "crop=1280:720:316:50" output-cropped.mkv

Объединение кусочков:

ffmpeg -f concat -i mylist.txt -c copy out4.mkv

Содержимое mylist.txt:

file '/media/data/zenitur/out1.mkv'

file '/media/data/zenitur/out2.mkv'

file '/media/data/zenitur/out3.mkv'

Отделение аудио от видео для последующей обработки в Audacity:

ffmpeg -i output.mkv -acodec pcm_s16le -vn output-audio.wav

Отделение видео от аудио для последующего совмещения с результатом предыдущей команды:

ffmpeg -i output.mkv -an -vcodec copy output-video.mkv

Стриминг в твич:

ffmpeg -f x11grab -s "1920x1080" -r "30" -i :0.0 -f alsa -i pulse -f flv -ac 2 -ar 44100 -vcodec nvenc -s 1280x720 -preset hq -tune film -acodec libmp3lame -threads 0 -strict normal  "rtmp://live.justin.tv/app/live_цыфорки_буковки"


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования