Możesz wyodrębnić miniatury z filmów za pomocą ImageMagick w ten sposób ( stąd - inna odpowiedź twierdzi, że ImageMagick używa ffmpeg „pod maską”, więc nie wiem, czy to rzeczywiście będzie szybsze niż użycie ffmpeg):
convert input.mp4[100] thumbnail.png
[100]
mówi ImageMagick podjąć 100. klatkę z input.mp4
. Przetestowałem to na strumieniu wideo H.264 w kontenerze MP4. Oczywiście możesz używać dowolnych opcji ImageMagick, w tym usuwania przeplotu zgodnie z opisem w linku.
ImageMagick jest jednak tak naprawdę przeznaczony do obsługi pojedynczych obrazów; do wideo powinieneś po prostu użyć ffmpeg. Oczywiście jest tu pewne nakładanie się, ponieważ masz do czynienia z pojedynczą klatką, ale powiedziałbym, że usuwanie przeplotu jest bardziej zadaniem przetwarzania wideo.
Do usuwania przeplotu należy użyć filtra yadif . W ten sposób możesz dodać go do swojej istniejącej linii:
ffmpeg -ss 600 -i input.mp4 -vframes 1 -s 420x270 -filter:v 'yadif' output.png
podczas pracy z filtrami wolę używać filtra skalowania niż -s
:
ffmpeg -ss 600 -i input.mp4 -vframes 1 -filter:v 'yadif,scale=420:270' output.png
ffmpeg
robi polecenie z ImageMagick. Nie mam pojęcia, czy to możliwe, czy nie ...ImageMagick wykonuje powłoki do ffmpeg za pomocą tego polecenia:
Krótka odpowiedź brzmi „nie” (ponieważ sama tego nie robi).
źródło