Сжимаем фильмы с помощью ffmpeg
#41 OFFLINE
Отправлено 19 Декабрь 2020 - 20:46
#42 OFFLINE
Отправлено 19 Декабрь 2020 - 21:42
#44 OFFLINE
Отправлено 08 Февраль 2021 - 22:22
Первый -- в лоб, с помощью опций -ss и -to сохраняешь куски видео до и после вырезаемого фрагмента, затем склеиваешь их (concat). Как это сделать, мы уже проходили.
Но примерно то же самое можно сделать одной командой с помощью фильтра trim. Например, тебе надо убрать отрезок с 10-й секунды по 20-ю:
ffmpeg -i in.mp4 -filter_complex \ "[0:v]trim=duration=10[a]; \ [0:v]trim=start=20,setpts=PTS-STARTPTS[b]; \ [a][b]concat[out1]" -map [out1] out.mp4
Если надо вырезать два фрагмента (с 10-й по 20-ю и с 30-й по 40-ю):
ffmpeg -i in.mp4 -filter_complex \ "[0:v]trim=duration=10[a]; \ [0:v]trim=start=20:end=30,setpts=PTS-STARTPTS[b]; \ [a][b]concat[c]; \ [0:v]trim=start=40,setpts=PTS-STARTPTS[d]; \ [c][d]concat[out1]" -map [out1] out.mp4и так далее.
Это чистое видео. Если хочешь видео со звуком, то надо добавить обработку аудиодорожки:
ffmpeg -i in.mp4 -filter_complex \ "[0:v]trim=duration=10[av];[0:a]atrim=duration=10[aa];\ [0:v]trim=start=20,setpts=PTS-STARTPTS[bv];\ [0:a]atrim=start=20,asetpts=PTS-STARTPTS[ba];\ [av][bv]concat[outv];[aa][ba]concat=v=0:a=1[outa]" -map [outv] -map [outa] out.mp4
ffmpeg -i in.mp4 -filter_complex \ "[0:v]trim=duration=10[av];[0:a]atrim=duration=10[aa];\ [0:v]trim=start=20:end=30,setpts=PTS-STARTPTS[bv];\ [0:a]atrim=start=20:end=30,asetpts=PTS-STARTPTS[ba];\ [av][bv]concat[cv];[aa][ba]concat=v=0:a=1[ca];\ [0:v]trim=start=40,setpts=PTS-STARTPTS[dv];\ [0:a]atrim=start=40,asetpts=PTS-STARTPTS[da];\ [cv][dv]concat[outv];[ca][da]concat=v=0:a=1[outa]" -map [outv] -map [outa] out.mp4
#45 OFFLINE
Отправлено 08 Февраль 2021 - 23:00
#46 OFFLINE
Отправлено 08 Февраль 2021 - 23:04
#47 OFFLINE
Отправлено 08 Февраль 2021 - 23:12
#48 OFFLINE
Отправлено 08 Февраль 2021 - 23:28
#49 ONLINE
Отправлено 08 Февраль 2021 - 23:55
я так понимаю, что тебе надо убрать кусок видео вместе с сопровождающим этот кусок звуком, и мне не совсем ясно
ffmpeg -i in.mp4 -filter_complex \ "[0:v]trim=duration=10[a]; \ [0:v]trim=start=20,setpts=PTS-STARTPTS[b]; \ [a][b]concat[out1]" -map [out1] out.mp4
или нужно понимать вот так:
ffmpeg -i in.mp4 -filter_complex \ "[0:v]trim=duration=10[av];[0:a]atrim=duration=10[aa];\ [0:v]trim=start=20,setpts=PTS-STARTPTS[bv];\ [0:a]atrim=start=20,asetpts=PTS-STARTPTS[ba];\ [av][bv]concat[outv];[aa][ba]concat=v=0:a=1[outa]" -map [outv] -map [outa] out.mp4
курсив вставил я в текст Al71..
сорри, может туплю от незнания Nix..
#50 OFFLINE
Отправлено 09 Февраль 2021 - 00:09
ffmpeg -- он и в Винде ffmpeg )
#51 ONLINE
Отправлено 09 Февраль 2021 - 00:24
хотя нет, раз я кажись откусывал нужный фрагмент с нужной музыкой, но сщас уже не помню как это делать, поскольку видео занимался редко, ничего натвёрдо не запоминалось, всегда обкладывался шпаргалками от AlexStorm и методом сделал - посмотрел, чёполучилось..
#52 OFFLINE
Отправлено 09 Февраль 2021 - 02:39
Не легче ли попрощаться с данной операционной системой и поставить форточку с рядом необходимых медиа-редакторов.
#53 OFFLINE
Отправлено 09 Февраль 2021 - 08:49
Редакторов с GUI и в линуксе достаточно, тот же avidemux позволяет вырезать ненужный фрагмент в три клика. Но в данной теме мы обсуждаем ffmpeg, который предоставляет полную свободу действий и куда больше возможностей, когда нужно автоматизировать процесс или сделать что-нибудь нестандартное. Я часто скачиваю фильмы, сериалы или циклы телепередач и перекодирую их чисто для себя до нужного мне размера и качества. Когда-то, еще на форточках, для этих целей пользовался VirtualDub'ом, и требовалось уйма времени, чтобы кликнуть по всем иконкам и создать очередь для пакетной обработки, а задача, описанная в первом посте с такими редакторами и вовсе невыполнима. С готовым скриптом все серии перекодируются одной командой. Потратив немного времени на его написание, я сэкономил себе несоизмеримо больше в дальнейшем.
Кстати, в форточках продвинутые пользователи тоже пишут батники с ffmpeg, несмотря на обилие готовых редакторов, но возможности никсовых скриптов гораздо шире.
#54 OFFLINE
Отправлено 09 Февраль 2021 - 11:02
Если не надо ничего вырезать, и все файлы должны обрабатываться с одинаковыми настройками... Достаточно забить настройки, указать папку с исходными файлами и папку куда будут записываться файлы на выходе После чего запустить пакетную обработку.
Помню когда то давно (в 2009 году) даже хелп рисовал, как в пакетном режиме кодировать в 2-прохода.
#55 OFFLINE
Отправлено 09 Февраль 2021 - 12:55
Но задачи могут быть разными. В этом посте я кратко описал алгоритм работы скриптов при перекодировании архива, все, что они делали без моего непосредственного участия, врял ли виртуалдабу такое под силу. К перечисленному можно добавить, что каждый файл с латинским названием автоматически переименовывался в русское, причем не простой транслитерацией, а путем сопоставления со списком с сайта архива. Например, "adjutant.ego.prevoshoditelstva.3.avi" заменялся на "Адъютант его превосходительства (3_из_5).mkv" и т.д. Прикинь, сколько мне понадобилось бы времени, чтобы вручную переименовать двенадцать тысяч файлов.
#56 OFFLINE
Отправлено 09 Февраль 2021 - 19:41
#57 OFFLINE
Отправлено 09 Февраль 2021 - 20:28
#58 OFFLINE
Отправлено 10 Февраль 2021 - 21:01
#59 OFFLINE
Отправлено 10 Февраль 2021 - 21:52
#60 OFFLINE
Отправлено 11 Февраль 2021 - 00:57
Но есть и другие факторы. Например от размера кадра будет зависеть загруженность cpu. Больше картинка, больше загрузка.
От версии кодера может зависеть. Скажем старая версия при более сильной загрузке cpu будет обрабатывать меньше кадров.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных