Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Видео и аудио: обработка и кодирование (http://forum.oszone.net/forumdisplay.php?f=45)
-   -   FFmpeg - Из нескольких фотографий видеоролик с музыкой, текстами, эффектами (http://forum.oszone.net/showthread.php?t=318687)

Dahlum 11-09-2016 22:14 2667719

FFmpeg - Из нескольких фотографий видеоролик с музыкой, текстами, эффектами
 
Ищу специалиста по FFmpeg

Ваше потраченное время будет c благодарностью вознаграждено.
Писать на eMail: dahlum@mail.ru

lxa85 11-09-2016 22:20 2667720

Dahlum, "Специалист по FFmpeg" это звучит широко :)
Раскройте пожалуйста задачку пошире, чтобы друзьям и товарищам больше подробностей в личку отдать.

Dahlum 11-09-2016 23:20 2667726

Вот что делаю. Из нескольких фотографий сделать видеоролик с музыкой и текстом.
Эту часть я уже сделал. Теперь надо сделать повеселее - с различными видеоэффектами.
Отсюда 1-й вопрос : Какие из эффектов что в списке ниже, можно реализовать с помощью FFmpeg?
Appear/Disappear я так полагаю это можно и уже сделано в первой части - поставил + ,
а вот можно ли сделать остальные?


Fotos:
01 + Appear/Disappear
02 ? Ken Burns effect in/out
03 ? Fade in/out
04 ? Crossfade
05 ? Rotate in/out
06 ? Zoom in/out
07 ? Scroll in/out from top, bottom, left, right
08 ? Curtain open/close vertical, horizontal
09 ? Furl/unfurl
10 ? Increase/decrease centered, radial
11 ? Spindle left, right
12 ? Pixelate in/out


Music:
13 + Start/stop
14 ? Fade in/out
15 ? Crossfade

Text:
16 + Appear/Disappear
17 ? Ken Burns effect in/out
18 ? Fade in/out
19 ? Crossfade
20 ? Rotate in/out
21 ? Zoom in/out
22 ? Scroll in/out from top, bottom, left, right
23 ? Curtain open/close vertical, horizontal
24 ? Furl/unfurl
25 ? Increase/decrease centered, radial
26 ? Spindle left, right
27 ? Pixelate in/out
28 ? Star Wars opener in/out

DJ Mogarych 12-09-2016 21:31 2668010

Dahlum, вот документация по FFMpeg, фильтров там невероятное количество:
https://ffmpeg.org/ffmpeg-filters.html

bredych 08-06-2017 14:06 2742920

напоролся на какую-то глупейшую ошибку.
склеиваю серию картинок в видео, синтаксис примитивнейший -

ffmpeg -start_number 1068 -framerate 10 -i DSC_%04d.jpg video.mp4

- в результате ффмпег вместо того, чтоб согласно синтаксису подставлять вместо регекспа 4 цифры начиная с указанного старта, подставляет имя батника и собщает, что дескать, картинки с именем DSC_[имя_батника.bat].jpg не существует

Что я делаю не так?

Amigos 08-06-2017 15:24 2742942

Цитата:

Цитата bredych
Что я делаю не так? »

пишите батники, не пройдя урок батаники https://rsdn.org/article/winshell/batanyca.xml

Цитата:

Цитата bredych
ffmpeg -start_number 1068 -framerate 10 -i DSC_%04d.jpg video.mp4 »

Цитата:

Прежде всего, вспоминаем, что переменная %0 в bat-файле соответствует нулевому аргументу командной строки, т.е. имени самого файла.

bredych 08-06-2017 17:16 2742973

Увы, батаникой занимался очень фрагментарно и давно

Делал по гайду, вывалившемуся с гугла первым:
https://en.wikibooks.org/wiki/FFMPEG...image_sequence

В других
https://stackoverflow.com/questions/...eo-from-images
http://hamelot.io/visualization/usin...-into-a-video/
- тоже в качестве регекспа указывается строка %03d

как тогда синтаксис "бери 4-значный номер начиная от стартового" описать?

кстати, мануал по ффмпегу описывает точно такой же синтаксис.
[начало_имени]%03.jpg как цепочку файлов "начало_имени"+ три цифры.jpg

Если просто %d (типа число без предшествующих нолей) - то знак % игнрирует вовсе, и заявляет, что нет файла пр имени DSC_d.jpg

Busla 08-06-2017 19:25 2743017

bredych, синтаксис верный, только он не предназначен для использования в батниках, у которых свои соглашения по синтаксису

если это одноразовая задача - просто наберите это в консоли
если сложная - стоит написать скрипт на чём-то более вменяемом, хотя бы jscript или powershell

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

bredych 09-06-2017 00:08 2743050

собсно уже подсказали. Решение было на поверхности, но я почему-то думал, что здесь не сработает:
Знак процентов заскринивается вторым им же. Тогда параметр %04d передаётся ффмпегу, а не обрабатывается согласно бат-синтаксису как переменная %0 ака имя исполняемого файла.

зы, если б умел писать на чем-то вменяемом - писал бы :)

meZon 16-06-2017 09:55 2745073

bredych, широко известный в узких кругах Kisa_AG на iXBT делился своим скриптом, в котором создавался промежуточный текстовый - BAT файл, - с нужным синтаксисом ffmpeg, , AviSynth, кодера neaacenc, муксера mp4box... <остальное забыл по-старости>
Просмотрите его в качестве примера "в чём разница".
У разных программ свои тараканы, а для выше упомянутых - больших тараканов. Не всегда очевидное в BAT файле, очевидно для программы, вызываемой оттуда.

bredych 17-12-2017 02:04 2784838

пытаюсь склеить несколько отрезков с фейдин эффектом. Пользуюсь скриптом от https://video.stackexchange.com/ques...ack-in-between
Правда слегка допиленным,
Код:

ffmpeg -i pol.mp4 -i fol.mp4 -i pol.mp4 -i fol.mp4  -filter_complex  "[0:v] fade=t=in:st=0:d=1, fade=t=out:st=3:d=1 [0v]; [0:a] afade=t=in:st=0:d=1, afade=t=out:st=3:d=1 [0a]; [1:v] fade=t=in:st=0:d=1, fade=t=out:st=55:d=1 [1v]; [1:a] afade=t=in:st=0:d=1, afade=t=out:st=55:d=1 [1a]; [2:v] fade=t=in:st=0:d=1, fade=t=out:st=3:d=1 [2v]; [2:a] afade=t=in:st=0:d=1, afade=t=out:st=3:d=1 [2a]; [3:v] fade=t=in:st=0:d=1, fade=t=out:st=55:d=1 [3v];  [3:a] afade=t=in:st=0:d=1, afade=t=out:st=55:d=1 [3a]; [0:v] [0:a] [1v] [1a] [2:v] [2:a] [3v] [3a] concat=n=4:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac test.mp4
и то, как тестовый прогон, на 2 файлах пробую..
В итоге получаю отлуп:
Код:

Output pad "default" with type video of the filter instance "Parsed_fade_1" of fade not connected to any destination
гугл мне ничего не желает сообщать на тему того, что это значит.
В самом коде дефолтов тоже не вижу, и не понимаю, чего даже копать.

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

DJ Mogarych 17-12-2017 19:19 2785015

bredych, пробуйте минимум команд сначала, и два файла.

Вот обсуждение похожей проблемы: https://trac.ffmpeg.org/ticket/5072

Запрос в Гугл: https://www.google.ru/search?q=ffmpe...ny+destination

bredych 04-03-2020 17:45 2912005

вопрос возник насчет версий.
Использовал до сих пор на старой машине
ffmpeg-20190711-2601eef-win32-static

поставил на новой мощной (под вин10/64) -
ffmpeg-20200227-9и22254-win64-static

итог - то, что на старой кодировалось где-то минут 40 и выдало в результате 345МВ ролик,
на новой кодировалось почти сутки и выдало 15ГВ ролик, который к тому же не играло.

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

Скрытый текст
ffmpeg -i 00.mp4 -i 01.mp4 -i 02.mp4 -i 03.mp4 -i 04.mp4 -i 05.mp4 -i 07.mp4 -i 08.mp4 -i 09.mp4 -i 10.mp4 -i 11.mp4 -i 12.mp4 -i 13.mp4 -i 14.mp4 -i 15.mp4 -i 16.mp4 -i 17.mp4 -i 18.mp4 -i 19.mp4 -i 20.mp4 -i 21.mp4 -i 22.mp4 -i 23.mp4 -i 24.mp4 -i 25.mp4 -i 26.mp4 -i 27.mp4 -i 28.mp4 -i 29.mp4 -i 30.mp4 -i 31.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=30:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4


собсно вопрос: это версия глючная? Или есть какие-то нюансы в командах в зависимости от разрядности?

DJ Mogarych 06-03-2020 19:45 2912259

Попробуйте через файл - https://trac.ffmpeg.org/wiki/Concatenate

bredych 08-03-2020 01:16 2912362

Цитата:

Цитата DJ Mogarych
Попробуйте через файл »

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


Время: 01:16.

Время: 01:16.
© OSzone.net 2001-