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

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



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


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

#61 OFFLINE   Damian

 

    Долгожитель

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

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

Не знаю у меня всегда на 100% загружен процессор во время кодирования.

#62 OFFLINE   Al71

 

    Мастер

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

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

Damian, можешь привести скриншот команды
top -H
во время кодирования?

#63 OFFLINE   Damian

 

    Долгожитель

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

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

Скрытый текстtop -H


#64 OFFLINE   Al71

 

    Мастер

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

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

Damian, я вижу только два работающих ( R ) процеccа ffmpeg, один грузит поток на 73,4%, другой грузит второй поток на 28,3%. Откуда ты взял 100%, я не понимаю. Если хочешь посмотреть суммарную загрузку процессора ffmpeg'ом, можешь запустить top без -H, только эту величину надо делить на число потоков.

#65 OFFLINE   Damian

 

    Долгожитель

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

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

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

Откуда ты взял 100%, я не понимаю.
из коньков и взял на 2 ядра по 100% и показывают там плюс минус.Кстати посмотри правильно я сделал,пока не запускал ещё
ffmpeg -i zout.mp4 -filter_complex \
"[0:v]trim=duration=333[av];[0:a]atrim=duration=333[aa];\
[0:v]trim=start=350,setpts=PTS-STARTPTS[bv];\
[0:a]atrim=start=350,asetpts=PTS-STARTPTS[ba];\
[av][bv]concat[outv];[aa][ba]concat=v=0:a=1[outa]" -map [outv] -map [outa] out.mp4



#66 OFFLINE   Al71

 

    Мастер

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

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

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

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

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

из коньков и взял на 2 ядра по 100% и показывают там плюс минус
Можешь во время кодирования запустить top (без -H), нажать t и показать вывод. Мне этот момент не до конца ясен. Ну и коньки заодно покажи, с процессами.

#67 OFFLINE   Damian

 

    Долгожитель

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

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

Скрытый текстTOP

Изображение

#68 OFFLINE   Al71

 

    Мастер

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

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

У тебя всего два потока, поэтому кодек грузит процессор практически по максимуму (на ~90%, остальное коньки и система). При этом температура 55-58оС выглядит более адекватно. У меня при двадцати потоках с этой командой загрузка всего около 30%. Если ограничить число потоков до двух и привязать к ядрам, то получается примерно как у тебя (80-90% на поток). И от разрешения этот процент тоже зависит, как заметил UrryMan.

#69 OFFLINE   Damian

 

    Долгожитель

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

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

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

У тебя всего два потока,
не знаю,я не разбираюсь,почему-то после вырезания размер наоборот увеличился что было неожиданностью почти в 2 раза.

#70 OFFLINE   Al71

 

    Мастер

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

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

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

почему-то после вырезания размер наоборот увеличился что было неожиданностью почти в 2 раза

Бывает, что при перекодировании размер увеличивается. Это может зависеть от исходного видео и заданного crf кодера (по умолчанию 23). К сожалению, просто скопировать видеоряд без перекодирования с одновременной фильтрацией не получится, так как фильтры применяются к raw-формату (mp4-->decoder-->raw-->filter-->encoder-->mp4), но можно явно указать CRF кодера, добавив в последнюю строку -c:v h264 -crf N, где N -- нужный CRF. Например:

ffmpeg -i zout.mp4 -filter_complex \
"[0:v]trim=duration=333[av];[0:a]atrim=duration=333[aa];\
[0:v]trim=start=350,setpts=PTS-STARTPTS[bv];\
[0:a]atrim=start=350,asetpts=PTS-STARTPTS[ba];\
[av][bv]concat[outv];[aa][ba]concat=v=0:a=1[outa]" -c:v h264 -crf 25 -map [outv] -map [outa] out.mp4

Хотя качество при этом вряд ли улучится.

Если использовать первый способ вырезания фрагмента (с опциями -ss и -to), то там можно обойтись без перекодирования, но высока вероятность артефактов, если обрезать не по ключевому кадру. Это, кстати, относится и к графическим редакторам.

#71 OFFLINE   Damian

 

    Долгожитель

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

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

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

добавив в последнюю строку -c:v h264 -crf N, где N -- нужный CRF. Например:
это кусок строки из скрипта для кодирования,он может быть полезен когда размер нужен небольшой.

#72 OFFLINE   Damian

 

    Долгожитель

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

Отправлено 25 Август 2021 - 19:21

Al71, противники свободно распространяемых библиотек для кодирования утверждают что нельзя сделать плавные переходы между разными фрагментами c помощью ffmpeg,можем ли мы опровергнуть эту теорию.Я сегодня был на одном мероприятии и наснимал там несколько aviшек как мне теперь переходы между этими роликами сделать,пока у меня нет смартфона или планшета я камерой свой миниатюрной снимаю ну и тренируюсь заодно.

#73 OFFLINE   Al71

 

    Мастер

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

Отправлено 27 Август 2021 - 04:32

Тут предлагаются разные способы. Один из самых простых — новый фильтр xfade (начиная с ffmpeg версии 4.3.2). Я сам пока не пробовал эти способы за неимением времени, посмотрю как-нибудь потом на досуге, а ты можешь поэкспериментировать, и расскажешь здесь, что вышло.

ffmpeg -i first.mp4 -i second.mp4 \
	 -filter_complex "xfade=transition=fade:offset=60:duration=1" \
	 out.mp4


#74 OFFLINE   Damian

 

    Долгожитель

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

Отправлено 28 Август 2021 - 21:49

Я может не совсем правильно объяснил: есть 7 aviшек разного размера,мне надо их перегнать в mp4 по твоему скрипту,потом объединить только с возможностью плавного перехода между этими роликами,а эта команда я не понимаю как она может помочь с таким количеством файлов и на каком этапе её применять,мне она непонятна там наверное время опять высчитывать в секундах надо непонятно в общем.

#75 OFFLINE   Al71

 

    Мастер

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

Отправлено 29 Август 2021 - 05:48

Ты попробуй сначала два ролика склеить. Остальные можно добавлять последовательно. Если файлов много, можно написать скрипт, чтобы автоматизировать этот процесс для произвольного числа. Возможно, существует способ склеить несколько видео одной командой, но она наверняка будет очень громоздкой и ее придется каждый раз основательно править при изменении числа роликов.

#76 OFFLINE   Damian

 

    Долгожитель

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

Отправлено 29 Август 2021 - 19:39

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

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

#77 OFFLINE   Al71

 

    Мастер

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

Отправлено 29 Август 2021 - 20:06

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

я уже много раз просил научить их писать меня.

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

#78 OFFLINE   Damian

 

    Долгожитель

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

Отправлено 30 Август 2021 - 16:47

Версия в репозиториях ранняя там нет фильтра нужного,как последнюю ffmpeg поставить не понял.

#79 OFFLINE   Al71

 

    Мастер

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

Отправлено 31 Август 2021 - 13:18

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

как последнюю ffmpeg поставить не понял

Собрать из исходников несложно, там все стандартно (configure, make, make install), но потом могут возникнуть проблемы с кодеками (например, libx264 по умолчанию отключен). Если тебе очень нужно, можешь попробовать последнюю версию, или рассмотри другие способы.

#80 OFFLINE   Damian

 

    Долгожитель

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

Отправлено 01 Сентябрь 2021 - 14:56

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

там все стандартно (configure, make, make install),
у меня в последнее время не ладится с этим,ставлю так :
sudo apt autoremove --purge ffmpeg
sudo mkdir -p /opt/ffmpeg
это опять же по инструкции,мож чего и неверно.
cd /opt/ffmpeg
sudo wget -c https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
--2020-09-24 16:00:35--
sudo tar xvf ffmpeg-release-amd64-static.tar.xz
далее переходим в нужный нам каталог

Цитата

cd ffmpeg-4.4-amd64-static/
и в нём уж не знаю для чего но выполняем две команды:
sudo ln -s "${PWD}/ffmpeg" /usr/local/bin/
sudo ln -s "${PWD}/ffprobe" /usr/local/bin/
на этом установка ffmpeg завершена.На всяк случай проверяем.
Скрытый текст
версия от господина Хованского,лишь бы работала.





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

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