Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

понедельник, 25 декабря 2017 г.

ffmpeg: вырезаем кусок видео без потери качества (перекодирования), склеиваем или заменяем аудио

Про эту чудную команду я узнал от коллеги на JuJa курсе. За что огроменное спасибо. Раньше я бы вырезал с помощью какой-то тулы, которая еще пол часа (в лучшем случае) перекодировала видео. При этом качество терялось однозначно. Сейчас же я вбиваю команду

ffmpeg -i d:\in.mp4 -c copy -ss 1:00:18 -t 0:10:29 d:\out.mp4

И результат я вижу уже через минуту. А задача простая - есть оригинальное видео in.mp4 - из него надо извлечь кусочек начиная с позиции 1:00:18 продолжительностью 0:10:29 без потери качества в out.mp4.

Для склейки используется другая команда

ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4

Где в файлике list.txt

file 'D:\video\in1.mp4'
file 'D:\video\in2.mp4'
file 'D:\video\in3.mp4'

Для замены аудио дорожки в видео звуком из другого файла

fmpeg -i in.mp4 -itsoffset 79.5 -i audio.m4a -c:v copy -map 0:v:0 -map 1:a:0 -ss 0:04:40 -t 1:44:02 out.mp4

Тут берем исходный файл in.mp4 и в нем заменям звуковую дорожку содержимым из файла audio.m4a. При этом точкой синхронизации (я прослушивал два файла и находил в них то место, где я начинаю говорить одно и то же): видео 4m37.5s = 277.5s, аудио 3m18s = 198s. То есть video = audio + 79.5с. И я знаю, что первые 4m40s я хочу в результате вырезать, а клип чтобы был длинной 1h44m2s.

В случае, если длиннее интро будет не у видео а у аудио, то ключик  -itsoffset я должен буду подставить под соответствующий -i параметр загрузки дорожки. Порядок имеет значение!

Команда ffmpeg много полезного имеет в себе. Это только одна из многих десятков команд. 

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

Отправить комментарий