Screencast
Screencast, работа с видео/аудио. Скрипт в ~/.bin/cast
.
Параметры записи
- Pavucontrol, 32% микрофон.
- Запись simplescreenrecorder: MKV, H.264, rate 20, superfast, vorbis 128.
- Audacity: удаляем шумы(дважды), улучшаем звук.
- ffmpeg: заменяем аудио дорожку.
- ffmpeg: перекодируем в mp4, 1080p, 30 кадров, bit rate 128k, если нужно ускоряем на 20%.
- ffmpeg: накладываем 2 аудио дорожку, зацикливаем и понижаем звук.
- Обрезаем, если нужно.
Audacity
- Выделить фрагмент без звука, Эффекты-Noise Reduction-создать модель шума.
- Двойной клик на дорожке(выделить всю), Эффекты-Noise Reduction-ок(в 2 этапа).
- Нормализация.
- Если необходимо усиливаем звук Дб.
Изменяем голос
- Двойной клик на дорожке(выделить всю), Эффекты-Смена высоты тона. -5, ок.
- Файл-экспорт-как wav.
Замена аудио ffmpeg
ffmpeg -i input.mp4 -i good.wav -map 0:0 -map 1:0 -c copy output.mp4
ffmpeg -i input.mp4 -i input.wav -c:a aac -vcodec copy -map 0:0 -map 1:0 output.mp4
Ffmpeg
Обрезка. Нужно высчитать -t
.
Вырезать 5 мин.
ffmpeg -ss 01:09:00 -t 00:05:00 -i arch.mkv -c:v copy -c:a copy out.mkv
Обрезаем последние 2 сек. из исходника в 8 сек.(00:00:08).
ffmpeg -ss 00:00:00 -i test.mkv -c copy -t 00:00:06 test2.mkv
С первой минуты по вторую(фрагмент с середины).
ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy -copyts out.mp4
Удалить первые 1.30 секунды.
ffmpeg -ss 00:00:01.30 -i video.mp4 -c copy out.mp4
Замедление, множитель больше 1.
- Замедление в 2 раза:
ffmpeg -i arch.mp4 -vf "setpts=2.0*PTS" speed_down.mp4
Ускорение
Ускорение в 2 раза:
ffmpeg -i arch.mp4 -vf "setpts=0.5*PTS" speed.mp4
Ускорение в 3 раза:
ffmpeg -i arch.mp4 -vf "setpts=1/3*PTS" speed.mp4
Ускорение в 5 раз:
ffmpeg -i arch.mp4 -vf "setpts=1/5*PTS" speed.mp4
Замедление в 5 раз:
ffmpeg -i arch.mp4 -vf "setpts=1*5*PTS" out.mp4
Убрать аудио: -an
Убрать видео: -vn
Сохранить оригинальные кодеки: -c copy
Битрейт аудио: -b:a (-b:a 320k)
Битрейт видео: -b:v (-b:v 16M)
Количество кадров fps: -r (-r 25)
Разрешение видео: -s (-s 1280x720)
Перед ускорением нужно убрать аудио -an
.
ffmpeg -i arch.mkv -r 30 -s 1920x1080 out.mp4
ffmpeg -i out.mp4 -vf "setpts=0.8*PTS" speed.mp4
Или комплексное, примерно на 20% atempo=1/setpts
.
ffmpeg -i arch.mkv -filter_complex "[0:v]setpts=0.8*PTS[v];[0:a]atempo=1.25[a]" -map "[v]" -map "[a]" -b:a 128k -r 30 -s 1920x1080 speed.mp4
Мозайка.
ffmpeg
-i 1.avi -i 2.avi -i 3.avi -i 4.avi
-filter_complex "
nullsrc=size=640x480 [base];
[0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft];
[1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright];
[2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft];
[3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright];
[base][upperleft] overlay=shortest=1 [tmp1];
[tmp1][upperright] overlay=shortest=1:x=320 [tmp2];
[tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3];
[tmp3][lowerright] overlay=shortest=1:x=320:y=240
"
-c:v libx264 output.mkv
ffmpeg -i 1.avi -i 2.avi -i 3.avi -i 4.avi -filter_complex "nullsrc=size=640x480 [base]; [0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=320 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=320:y=240" -c:v libx264 output.mkv
Наложение аудио
Опция shortest
— если аудио и видео на входе имеют разную длительность по времени, то результат будет иметь длительность наименьшего компонента.
ffmpeg -i видео.mp4 -i аудио.wav -c:v copy -c:a copy -shortest результат.mkv
mencoder -audiofile аудио.wav видео.mp4 -o результат.mp4 -ovc copy -oac copy
Наложение второй аудио дорожки и понижениие громкости.
ffmpeg -i video4.mp4 -i wave.mp3 -filter_complex "[0:a]volume=1[a1];[1:a]volume=0.2[a2];[a1][a2]amerge=inputs=2" -c:v copy -c:a libmp3lame -shortest out_mp3.mp4
Зацикливаем 2 аудио дорожку и понижаем звук, т.к. применили -stream_loop
, то и -shortest
нужен.
ffmpeg -i video4.mp4 -stream_loop -1 -i bla.mp3 -filter_complex "[0:a]volume=1[a1];[1:a]volume=0.04[a2];[a1][a2]amerge=inputs=2" -c:v copy -c:a libmp3lame -shortest out_mp3.mp4
Если видео без звука.
ffmpeg -i video4.mp4 -stream_loop -1 -i bla.mp3 -filter_complex "[1:a]volume=0.8[a]" -map 0:v -map "[a]" -c:v copy -c:a aac -shortest out.mp4
Понижаем звук аудио.
ffmpeg -i video.mp4 -stream_loop -1 -i bla.mp3 -filter:a "volume=0.8" -shortest res.mp4
Конвертировать видео в gif
С 5 сек. на 2 сек.
ffmpeg -y -ss 5 -t 2 -i ~/.wall/bg.mp4 -filter_complex "fps=10,scale=1366👎flags=lanczos[x];[x]split[x1][x2]; [x1]palettegen[p];[x2][p]paletteuse" ~/.wall/out.gif
Изменить размер gif.
convert -resize 1366 -quality 10 .wall/wall.gif .wall/out.gif
Stream
Live Stream (3000kbps)
rtmp://live.restream.io/live/key
flv, libx264, b/rate 3000, mp3 128
Kdenlive
- Настроить-Параметры проекта по умолчанию-HD 1080i 30fps.
Или.
- Настроить-Параметры проекта по умолчанию-HD 1080p 60fps.
- Настроить-Окружение-Потоков обработки - 2.
- Сборка. Generic, MP4 (H264/AAC).
Ускоряем сборку на MP4 (H264/AAC). Сборка-создать сценарий
. Отредактировать скрипт. Изменить preset=faster
на preset=ultrafast
. Проверить скорость работы скрипта до и после.
time ./script001.sh
Размер выходного файла.
du -h video.mp4
Результат теста. (исходник video.mkv 1:21 2,5Mb).
- HD 1080i 30fps MP4 (H264/AAC) - 7:46 4,2 Mb
- HD 1080p 60fps MP4 (H264/AAC) faster - 14:22 5,6Mb
- HD 1080p 30fps MP4 (H264/AAC) faster - 8:24 4,1Mb
- +HD 1080p 30fps MP4 (H264/AAC) ultrafast - 6:34 8.2Mb
- HD 1080p 30fps webm - 7:58 9.9Mb