Сжимаем фильмы с помощью ffmpeg - Страница 3 - Видео лаборатория - eMule-Rus.Net Форум муловодов - Страница 3

Перейти к содержимому



Сжимаем фильмы с помощью ffmpeg


  • Вы не можете ответить в тему
  • Вы не можете создать новую тему
Сообщений в теме: 87

#41 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 19 Декабрь 2020 - 20:46

AVC -- это и есть H.264

#42 OFFLINE   Damian

 

    Долгожитель

  • Постоянные посетители
  • PipPipPipPipPipPipPipPipPipPip
  • сообщений: 1 473
    Последний визит:
    21 дек 2023 21:37
  • Пол:Мужчина
 

Отправлено 19 Декабрь 2020 - 21:42

Это хорошо,скрипт по размеру проигрывателя ютубовского делает,но техника лучшего желать оставляет,один ролик загрузил и больше не буду. С водяными знаками так и не разобрался,это в коньках понятно там x-горизонталь,y-вертикаль а здесь не понимаю.Всё равно спасибо.

#43 OFFLINE   Damian

 

    Долгожитель

  • Постоянные посетители
  • PipPipPipPipPipPipPipPipPipPip
  • сообщений: 1 473
    Последний визит:
    21 дек 2023 21:37
  • Пол:Мужчина
 

Отправлено 08 Февраль 2021 - 20:47

Al71,Подскажи пожалуйста как можно определённый кусок из видео вырезать зная время начала и конца ненужного фрагмента.

#44 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 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   Damian

 

    Долгожитель

  • Постоянные посетители
  • PipPipPipPipPipPipPipPipPipPip
  • сообщений: 1 473
    Последний визит:
    21 дек 2023 21:37
  • Пол:Мужчина
 

Отправлено 08 Февраль 2021 - 23:00

Нет не совсем так,мне надо вырезать кусок с 05:33 по 05:50. в уже готовом mp4,он уже прошёл через скрипт avitomp4.sh .А это я не понял одна команда или тоже скрипт,если да то как называется.

#46 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 08 Февраль 2021 - 23:04

Это одна команда, записанная в несколько строк. Подставляешь имя файла и свое время в секундах, копируешь в терминал и нажимаешь энтер.

#47 OFFLINE   Damian

 

    Долгожитель

  • Постоянные посетители
  • PipPipPipPipPipPipPipPipPipPip
  • сообщений: 1 473
    Последний визит:
    21 дек 2023 21:37
  • Пол:Мужчина
 

Отправлено 08 Февраль 2021 - 23:12

Нифига не понял цифр очень много,куда вносить 05 мин 33сек по 05мин 50 сек,файл называется  z out.mp4.Звука не надо другого накладывать там уже есть звук нужный.

#48 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 08 Февраль 2021 - 23:28

Там всего два числа. Как перевести минуты в секунды я тебе объяснять не буду. А файл можешь переименовать, чтобы не было пробелов, или заключить в кавычки.

#49 OFFLINE   Ramerup

 

    сова упоротая..

  • [Хранители]
  • сообщений: 20 100
    Последний визит:
    Сегодня, 13:15
  • Пол:Мужчина
  • Откуда:Санкт-Петербург
 

Отправлено 08 Февраль 2021 - 23:55

Damian, подставь нужные параметры и представь свой вариант так, как у Al71 представлено, он посмотрит и скажет, правильно или нет..
я так понимаю, что тебе надо убрать кусок видео вместе с сопровождающим этот кусок звуком, и мне не совсем ясно

Просмотр сообщенияAl71 сказал:

тебе надо убрать отрезок с 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
тут уберется и видео и звук?
или нужно понимать вот так:

Просмотр сообщенияAl71 сказал:

Это чистое видео. Если хочешь [убрать?] видео со звуком, то надо добавить аудиострим:
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   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 09 Февраль 2021 - 00:09

ffmpeg обрабатывает видео- и аудио-потоки по отдельности. В первом случае сохранится только видео без звука. Чтобы обработать видео со звуком, нужно использовать второй вариант, с аудиодорожкой.

Просмотр сообщенияRamerup сказал:

Damian, подставь нужные параметры и представь свой вариант так, как у Al71 представлено, он посмотрит и скажет, правильно или нет..
Проще выполнить команду и посмотреть результат.

Просмотр сообщенияRamerup сказал:

сорри, может туплю от незнания Nix..

ffmpeg -- он и в Винде ffmpeg )

#51 OFFLINE   Ramerup

 

    сова упоротая..

  • [Хранители]
  • сообщений: 20 100
    Последний визит:
    Сегодня, 13:15
  • Пол:Мужчина
  • Откуда:Санкт-Петербург
 

Отправлено 09 Февраль 2021 - 00:24

Просмотр сообщенияAl71 сказал:

ffmpeg -- он и в Винде ffmpeg )
так я и ffmpeg не знаю :ag: не пользовался никогда, всё виртуалдабом, да и там задач убрать/вставить не стояло, чисто что-то подмандить с ресайзом, размером и пр. при перегонке из *.vob в *.avi ..
хотя нет, раз я кажись откусывал нужный фрагмент с нужной музыкой, но сщас уже не помню как это делать, поскольку видео занимался редко, ничего натвёрдо не запоминалось, всегда обкладывался шпаргалками от AlexStorm и методом сделал - посмотрел, чёполучилось..

#52 OFFLINE   UrryMan

 

    душевный парень

  • Модераторы
  • сообщений: 2 216
    Последний визит:
    Вчера, 18:20
  • Пол:Мужчина
  • Откуда:С-Пб
 

Отправлено 09 Февраль 2021 - 02:39

Что то как я не посмотрю на эту и похожие темы, всё вопросы про скрипты и команды которые надо прописывать вручную.
Не легче ли попрощаться с данной операционной системой и поставить форточку с рядом необходимых медиа-редакторов.

#53 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 09 Февраль 2021 - 08:49

Просмотр сообщенияUrryMan сказал:

Что то как я не посмотрю на эту и похожие темы, всё вопросы про скрипты и команды которые надо прописывать вручную. Не легче ли попрощаться с данной операционной системой и поставить форточку с рядом необходимых медиа-редакторов.

Редакторов с GUI и в линуксе достаточно, тот же avidemux позволяет вырезать ненужный фрагмент в три клика. Но в данной теме мы обсуждаем ffmpeg, который предоставляет полную свободу действий и куда больше возможностей, когда нужно автоматизировать процесс или сделать что-нибудь нестандартное. Я часто скачиваю фильмы,  сериалы или циклы телепередач и перекодирую их чисто для себя до нужного мне размера и качества. Когда-то, еще на форточках, для этих целей пользовался VirtualDub'ом, и требовалось уйма времени, чтобы кликнуть по всем иконкам и создать очередь для пакетной обработки, а задача, описанная в первом посте с такими редакторами и вовсе невыполнима. С готовым скриптом все серии перекодируются одной командой. Потратив немного времени на его написание, я сэкономил себе несоизмеримо больше в дальнейшем.

Кстати, в форточках продвинутые пользователи тоже пишут батники с ffmpeg, несмотря на обилие готовых редакторов, но возможности никсовых скриптов гораздо шире.

#54 OFFLINE   UrryMan

 

    душевный парень

  • Модераторы
  • сообщений: 2 216
    Последний визит:
    Вчера, 18:20
  • Пол:Мужчина
  • Откуда:С-Пб
 

Отправлено 09 Февраль 2021 - 11:02

Просмотр сообщенияAl71 сказал:

пользовался VirtualDub'ом, и требовалось уйма времени, чтобы кликнуть по всем иконкам и создать очередь для пакетной обработки

Если не надо ничего вырезать, и все файлы должны обрабатываться с одинаковыми настройками...  Достаточно забить настройки, указать папку с исходными файлами и папку куда будут записываться файлы на выходе  После чего запустить пакетную обработку.

Помню когда то давно (в 2009 году) даже хелп рисовал, как в пакетном режиме кодировать в 2-прохода.

#55 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 09 Февраль 2021 - 12:55

Насчет всей папки не помню, чтобы была такая возможность. Я мучился по классике.
Но задачи могут быть разными. В этом посте я кратко описал алгоритм работы скриптов при перекодировании архива, все, что они делали без моего непосредственного участия, врял ли виртуалдабу такое под силу. К перечисленному можно добавить, что каждый файл с латинским названием автоматически переименовывался в русское, причем не простой транслитерацией, а путем сопоставления со списком с сайта архива. Например, "adjutant.ego.prevoshoditelstva.3.avi" заменялся на "Адъютант его превосходительства (3_из_5).mkv" и т.д. Прикинь, сколько мне понадобилось бы времени, чтобы вручную переименовать двенадцать тысяч файлов.

#56 OFFLINE   Damian

 

    Долгожитель

  • Постоянные посетители
  • PipPipPipPipPipPipPipPipPipPip
  • сообщений: 1 473
    Последний визит:
    21 дек 2023 21:37
  • Пол:Мужчина
 

Отправлено 09 Февраль 2021 - 19:41

Просмотр сообщенияAl71 сказал:

Редакторов с GUI и в линуксе достаточно, тот же avidemux позволяет вырезать ненужный фрагмент в три клика. Но в данной теме мы обсуждаем ffmpeg, который предоставляет полную свободу действий и куда больше возможностей, когда нужно автоматизировать процесс или сделать что-нибудь нестандартное.
Во во Al71, ещё хотел одну интересную особенность наших линухов отметить,давно хотел рассказать но всё время забывал,в бытность пользования Виндовсом применял ряд необходимых видео-редакторов кстати довольно неплохих но при перекодировании там температура процессора до 80 градусов подымалась,cейчас во время конвертирования 35 максимум,интересно правда.

#57 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 09 Февраль 2021 - 20:28

Как раз здесь большой разницы быть не должно -- кодеки-то стандартные. Насколько мне помниться, ты менял систему охлаждения, скорее причина в этом.

#58 OFFLINE   Damian

 

    Долгожитель

  • Постоянные посетители
  • PipPipPipPipPipPipPipPipPipPip
  • сообщений: 1 473
    Последний визит:
    21 дек 2023 21:37
  • Пол:Мужчина
 

Отправлено 10 Февраль 2021 - 21:01

Просмотр сообщенияAl71 сказал:

менял систему охлаждения,
громко сказано,башенку ставил которую и убрал,охлаждает лучше на пару градусов а возни с монтажом на целый день.А насчёт температуры тема реальная,Total Video Converter в виндовсе очень сильно грел и вообще кодировщики имели такое свойство,даже в биосе снимал ограничения по температуре а теперь такого нет.

#59 OFFLINE   Al71

 

    Мастер

  • [eMule-Rus]
  • сообщений: 3 275
    Последний визит:
    22 ноя 2022 07:59
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 10 Февраль 2021 - 21:52

Тут еще надо смотреть на загрузку процессора и время кодирования. Если процессор недогружен, время увеличивается.  Для h264 можно использовать опцию -threads N, где N -- число потоков, но все равно стопроцентной загрузки при кодировании одного видео ты не получишь, алгоритм энкодера не позволяет достичь такой степени параллельности. Когда мне доводилось перекодировать большое количество серий, я делил их на две или на три папки и во всех запускал скрипт одновременно. Это позволяло нагрузить процессор сильнее и немного сократить общее время кодирования. Но 100%-ной загрузки можно добиться только используя однопоточное кодирование нескольких фильмов одновременно (по максимальному числу потоков), как я делал в случае с архивом.

#60 OFFLINE   UrryMan

 

    душевный парень

  • Модераторы
  • сообщений: 2 216
    Последний визит:
    Вчера, 18:20
  • Пол:Мужчина
  • Откуда:С-Пб
 

Отправлено 11 Февраль 2021 - 00:57

Есть такая поговорка, - "кто хорошо ест, тот хорошо работает". Об этом (про загрузку процессора) сказал Al71

Но есть и другие факторы. Например от размера кадра будет зависеть загруженность cpu. Больше картинка, больше загрузка.
От версии кодера может зависеть. Скажем старая версия при более сильной загрузке cpu будет обрабатывать меньше кадров.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных