LINUX.ORG.RU

Стабилизация дрожания

 стабилизация


0

1

Вот видео: https://upload.wikimedia.org/wikipedia/commons/f/fe/Meerg%C3%A4nse_am_Haus_R%C3%BCschhaus.webm

Пробовал: ffmpeg -i "Meergänse am Haus Rüschhaus.webm" -vf vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=transform_vectors.trf -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus "Meergänse am Haus Rüschhaus stable.webm"

Эффекта почти нет.

Стоит как-то подкрутить параметры или под эту задачу есть лучшие альтернативы для ffmpeg?

Годится стабилизация с отрубанием полей.

★★★★★
Ответ на: комментарий от eugrus

Попробовал vidstab и он даже что-то усиленно делал, но вот выходного файла в каталоге не оставил 🤔

# python3
Python 3.9.16 (main, Mar 21 2023, 10:12:38)
[GCC 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import vidstab
>>> vs = vidstab.VidStab()
>>> vs.stabilize(input_path='Meergänse am Haus Rüschhaus.webm', output_path='Meergänse am Haus Rüschhaus stab.webm')
Stabilizing |▌                               | 1%OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 7 and format 'webm / WebM'
[webm @ 0x7fffd37fbd80] Only VP8 or VP9 or AV1 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM.
[ERROR:0@17.326] global cap.cpp:595 open VIDEOIO(CV_IMAGES): raised OpenCV exception:

OpenCV(4.7.0) /io/opencv/modules/videoio/src/cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): Meergänse am Haus Rüschhaus stab.webm in function 'icvExtractPattern'


Stabilizing |████████████████████████████████| 100%
eugrus ★★★★★
() автор топика
Последнее исправление: eugrus (всего исправлений: 1)
Ответ на: комментарий от eugrus

И аналогично при таком запуске:

# python3 -m vidstab --input "Meergänse am Haus Rüschhaus.webm" --output "Meergänse am Haus Rüschhaus stab.webm"
Stabilizing |▌                               | 1%[ERROR:0@2.929] global cap.cpp:595 open VIDEOIO(CV_IMAGES): raised OpenCV exception:

OpenCV(4.7.0) /io/opencv/modules/videoio/src/cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): Meergänse am Haus Rüschhaus stab.webm in function 'icvExtractPattern'


Stabilizing |████████████████████████████████| 100%
eugrus ★★★★★
() автор топика
Ответ на: комментарий от eugrus

Добавление ему за чего-то ради жизненно необходимой цифры в имени файла проблемы не решило - аутпут-файла нет.

# python3 -m vidstab --input "Meergänse am Haus Rüschhaus1.webm" --output "Meergänse am Hau
s Rüschhaus stab1.webm"
Stabilizing |▌                               | 1%OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 7 and format 'webm / WebM'
[webm @ 0x7fffea8943c0] Only VP8 or VP9 or AV1 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM.
Stabilizing |████████████████████████████████| 100%
eugrus ★★★★★
() автор топика
Ответ на: комментарий от irton

Дело в том, что после того как пишет ещё долго обрабатывал. Было предположение, что он намерен перескочить для вывода на другой кодек. Файл VP9 видео, OPUS аудио и WebM контейнер. А дальше он пишет, что именно такую комбинацию и поддерживает. Причём тут MJPEG не ясно.

eugrus ★★★★★
() автор топика
Ответ на: комментарий от irton

На mp4 сработало, хотя ругался аналогично:

# python3 -m vidstab --input VID_20230525_200526.mp4 --output "Meergänse am Haus Rüschhaus stab1.mp4"
Stabilizing |▌                               | 1%OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 7 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x7634706d/'mp4v'
Stabilizing |████████████████████████████████| 100%
eugrus ★★★★★
() автор топика

Пробовал Эффекта почти нет

Там не просто «почти нет», его вообще не должно быть. Ты же указываешь фильтр «vidstabdetect», который только вычисляет векторы (transform_vectors.trf). Их ещё потом нужно применить, во втором заходе:

ffmpeg -i Meergänse_am_Haus_Rüschhaus.webm -vf vidstabtransform=input=transform_vectors.trf out.mkv

В первом заходе бессмысленно кодировать видео, это пустая трата ресурсов. Можно вместо кодеков и выходного файла указывать -f null /dev/null.

i-rinat ★★★★★
()