Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Ffmpeg blackdetect - удаление переходов и черных сцен
цитата
02/03/17 в 13:04
 RedRabbit
Здравствуйте, не могу понять как работает ffmpeg blackdetect и добиться от него удаление всех черных сцен и затемненых переходов.
Мне нужно максимально найти все темные сцены и затемненые переходы. Если лишнее режется не страшно. Хотя при перевой комманде иногда режется странно. Может быть синтаксис поправить, так до сих пор и не понял толком для чего нужны pic_th pix_th. Доки читал.

ffmpeg -i video.mp4 -vf blackdetect=d=0.01:pic_th=1:pix_th=1 -an -f null - 2> black.txt

А эта команда находит меньше.

ffprobe -f lavfi -i "movie=video.mp4,blackdetect[out0]" -show_entries tags=lavfi.black_start,lavfi.black_end -of default=nw=1 -v quiet > black.txt

Это тоже пробовал, результат как 2
https://pyscenedetect.readthedocs.io/en/latest/download/
цитата
02/03/17 в 13:39
 johndoe2
pic_th = нижняя граница для доли "черных" пикселов. Если доля "черных" не меньше pic_th, картинка считается черной. По умолчанию 0.98. В твоей первой команде pic_th=1, т.е. картинка считалась черной только если абсолютно все пискелы "черные".

pix_th = верхняя граница яркости для "черных" пикселов от 0 до 1. По умолчанию 0.1. В твоей первой команде pix_th=1, т.е. пиксел любой якрости будет считаться черным.

Пробуй:
pic_th от 0.5 и выше
pix_th от 0.3 и ниже.
цитата
02/03/17 в 14:12
 RedRabbit
Спасибо smail54.gif , надо потестировать.
Еще один вопрос, удобнее конечно так, но как передать параметры???
blackdetect=d=0.01:pic_th=1:pix_th=1
В этом коде, если добавлять, то с ошибкой вываливается
ffprobe -f lavfi -i "movie=video.mp4,blackdetect[out0]" -show_entries tags=lavfi.black_start,lavfi.black_end -of default=nw=1 -v quiet > black.txt
цитата
03/03/17 в 23:27
 RedRabbit
Кому пригодится может быть. В общем, по результатам всех тестов выиграл. Хз почему icon_smile.gif
Код:

ffmpeg -i video.mp4 -vf blackdetect=d=0.01:pic_th=1:pix_th=1 -an -f null - 2> black.txt

Но иногда вырезает сцену полностью нормальную. icon_cry.gif

Сделал так: Сначала проверяем есть ли переходы и черные сцены этой командой.
Код:

ffmpeg -i video.mp4 -vf blackdetect=d=0.01:pic_th=1:pix_th=1 -an -f null - 2> black.txt

Если есть, то запускаем, до тех пор пока список не будет пуст, с условием, что если сцена больше 2 секунд, то ее откладываем, а потом, после резки добавляем.
Код:

ffmpeg -i video.mp4 -vf blackdetect=d=0.01:pic_th=1:pix_th=1 -an -f null - 2> black.txt

А потом иногда еще разок прогоняется первой командой.
Получается шикандос. Все лишнее убирается.
Спасибо еще раз johndoe2 за разъяснения.


Эта страница в полной версии