Сайт | Скачать | Видео | Wiki

Автор Тема: ffmpeg-concat - создание переходов между видеоклипами  (Прочитано 3972 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Подскажите как? Нужно это - https://github.com/transitive-bullshit/ffmpeg-concat/
(ffmpeg-concat - для создания переходов между клипами)
« Последнее редактирование: 13 Август 2020, 10:55:02 от Neyel »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Re: Как установить программу с github
« Ответ #1 : 12 Август 2020, 16:33:07 »
Через Aur:
Код
$ packer nodejs-ffmpeg-concat

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Как установить программу с github
« Ответ #2 : 12 Август 2020, 17:53:02 »
nodejs-ffmpeg-concat-1.0.13-1-any.pkg.tar.xz
Пока не проверял (не на чем) - но позже обязательно проверю.
2sfs - можно перенести тему в Программное обеспечение  :)
UPD: help выводит:
Код
live@lfa1801:~/2$ ffmpeg-concat --help
Usage: ffmpeg-concat [options] <videos...>

Options:
  -V, --version                         output the version number
  -o, --output <output>                 path to mp4 file to write (default: "out.mp4")
  -t, --transition-name <name>          name of gl-transition to use (default: "fade")
  -d, --transition-duration <duration>  duration of transition to use in ms (default: 500)
  -T, --transitions <file>              json file to load transitions from
  -f, --frame-format <format>           format to use for temp frame images (default: "raw")
  -c, --concurrency <number>            number of videos to process in parallel (default: 4)
  -C, --no-cleanup-frames               disables cleaning up temp frame images
  -O, --temp-dir <dir>                  temporary working directory to store frame data
  -h, --help                            output usage information
live@lfa1801:~/2$
« Последнее редактирование: 12 Август 2020, 17:56:05 от Neyel »

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Как установить программу с github
« Ответ #3 : 12 Август 2020, 20:23:13 »
Не работает:
Код
ffmpeg-concat -O /mnt/sda3/ -f jpg 1.mp4 2.mp4 3.mp4
{ cmd: 'ffmpeg -i 1.mp4 -y -pix_fmt rgba -start_number 0 /mnt/sda3/scene-0-%012d.jpg' }
{ cmd: 'ffmpeg -i 3.mp4 -y -pix_fmt rgba -start_number 0 /mnt/sda3/scene-2-%012d.jpg' }
{ cmd: 'ffmpeg -i 2.mp4 -y -pix_fmt rgba -start_number 0 /mnt/sda3/scene-1-%012d.jpg' }
init-frames: 27022.985ms
node: symbol lookup error: /usr/lib/node_modules/ffmpeg-concat/node_modules/gl/build/Release/webgl.node: undefined symbol: _Z15XextFindDisplayP15_XExtensionInfoP9_XDisplay

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Re: Как установить программу с github
« Ответ #4 : 12 Август 2020, 21:06:12 »
1.0.13
Версия старая, ссылки в aur пакете давно не правились, на гите уже v1.2.0. Надо поправить в скачанном файле PKGBUILD версию 1.0.13 на 1.2.0. Может еще что придется изменить, sha1sums тоже наверно.

upd. Далее, в папке nodejs-ffmpeg-concat выполнить makepkg с ключами -s (установить зависимости) или -d (не проверять зависимости).
С packer я не знаю как, если пакет уже скачан и распакован.

Команда packer -G nodejs-ffmpeg-concat скачает пакет в текущую директорию и распакует его, без сборки.
« Последнее редактирование: 12 Август 2020, 21:16:32 от krasnyh »

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Как установить программу с github
« Ответ #5 : 12 Август 2020, 21:06:18 »
Нашёл ещё решение - перекомпилить webgl.node:
Цитата
Steps to build webgl.node:
Clone this repo: git clone git@github.com:stackgl/headless-gl.git
Switch to the headless gl directory: cd headless-gl
Initialize the angle submodule: git submodule init
Update the angle submodule: git submodule update
Install npm dependencies: npm install
Run node-gyp to generate build scripts: npm run rebuild

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Как установить программу с github
« Ответ #6 : 12 Август 2020, 21:38:34 »
Нашёл ещё решение - перекомпилить webgl.node:

Итак, всё получилось - НО :
При обработке исходные видео полностью раскадрируются
Код
...
{ cmd: 'ffmpeg -i 1.mp4 -y -pix_fmt rgba -start_number 0 /mnt/sda3/scene-0-%012d.jpg' }
{ cmd: 'ffmpeg -i 3.mp4 -y -pix_fmt rgba -start_number 0 /mnt/sda3/scene-2-%012d.jpg' }
{ cmd: 'ffmpeg -i 2.mp4 -y -pix_fmt rgba -start_number 0 /mnt/sda3/scene-1-%012d.jpg' }
...

 (т.е. создаются скрины всех кадров исходных видеофайлов) - зачем , если для перехода можно задействовать только конец и начало клипов? Вообщем непонятен этот нюанс. И да - выходное видео получается без звука. Вообщем непонятно это всё  ::)
« Последнее редактирование: 12 Август 2020, 21:40:51 от Neyel »

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Re: Как установить программу с github
« Ответ #7 : 13 Август 2020, 10:53:56 »
При обработке исходные видео полностью раскадрируются
Это  можно решить, если написать скрипт который  режет начало и конец видеофайлов, потом эти куски сводятся с помощью ffmpeg-concat, и с помощью ffmpeg объединяются с исходными видеофайлами. Но не знаю как решить проблему со звуком (звуковые дорожки нужно наложить друг на друга, т.е. сделать кроссфейд аудио - а в сети практически нет информации, как это сделать с помощью ffmpeg)

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
т.е. сделать кроссфейд аудио
Вроде так:
Код
ffmpeg -i 0.mp3 -i 1.mp3 -vn -filter_complex acrossfade=d=10:c1=tri:c2=tri out.mp3
. Кроссфейд в данном случае составляет 10 секунд

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Вот ещё:

ffmpeg-gl-transition is a more complicated custom ffmpeg filter which allows you to use GLSL to smoothly transition between two video streams. This filter is significantly easier to use and customize than the alternatives listed here.

Код
ffmpeg -i 0.mp4 -i 1.mp4 -filter_complex "gltransition=duration=4:offset=1.5" out.mp4
- тоже интересное решение  :)
« Последнее редактирование: 13 Август 2020, 19:43:52 от Neyel »

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Буду выкладывать в эту тему примеры, которые мне понадобились (чтоб не забыть):

Как создать из картинки - видео:
Код
ffmpeg -filter_complex aevalsrc=0 -loop 1 -i screen.jpg -t 5 out.mp4

Как наложить аудио на видео:
Код
ffmpeg -i input.mp4 -i input.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest output.mp4

Визуализация звука:
Цитата
The following command shows a video with a waveform of the corresponding audio:

ffmpeg -i input.mp4 -filter_complex "[0:a]showwaves=s=1280x720,format=yuv420p[vid]" -map "[vid]" -map 0:a -codec:v libx264 -crf 18 -preset fast -codec:a aac -strict -2 -b:a 192k output.mp4

I replaced avectorscope with showwaves: avectorscope is for showing the difference between stereo pairs. Try showcqt,showfreqs,showspectrum for other visualization effects.

Наложение видео с черным фоном:
Код
ffmpeg -i out.mp4 -i output_audio.mp4 -filter_complex "[1:v]colorkey=0x000000:0.5:0.5[ckout];[0:v][ckout]overlay[out]" -map "[out]" -c:a copy -c:v libx264 output.mp4
« Последнее редактирование: 14 Август 2020, 19:50:25 от Neyel »

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Вот что у меня получилось - исходя из предыдущего поста  :D - https://www.youtube.com/watch?v=N2ZeHfNlcnc
« Последнее редактирование: 23 Август 2020, 15:55:32 от Neyel »

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
перекомпилить webgl.node
В архиве. Заменить им этот /usr/lib/node_modules/ffmpeg-concat/node_modules/gl/build/Release/webgl.node (так как в оригинальном ошибка undefined symbol)

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
Галерея переходов - https://gl-transitions.com/gallery Понравился переход crosswarp (на 5-ой странице) - может буду делать с ним ролики  :)
« Последнее редактирование: 24 Август 2020, 19:47:40 от Neyel »

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
  • Автор темы
https://youtu.be/uXXJtNjv7Vs Визуализация звука уменьшена и помещена в нижний правый угол И возник такой вопрос - есть ли визуализация где показываются только два вертикальный столбца с уровнем сигнала в левом и правом канале?  :'( Может есть какая-то программа для этого, потому что как сделать это с помощью ffmpeg я не нашёл  :'(