Я использую ffmpeg
для наложения изображения на фильм. Требуется повернуть изображение на произвольный угол. Используя filter_complex
, я могу теперь наложить повернутое изображение. Однако область вывода изображения заполняется черным цветом и непрозрачна. Я проверилдокументы, он говорит, что можно указать цвет заливки, в соответствии сэтот, но мне это не удалось. Есть идеи?
Копирую сюда свою командную строку:
./ffmpeg -i mersyvideo.mp4 -i avatar.jpg -filter_complex "[1:v] rotate=-30*PI/180:c=black@'0x00':ow=rotw(iw):oh=roth(ih) [rotate];[0:v][rotate] overlay=40:10" -codec:a copy output/overlayavatar.mp4
решение1
Чтобы заполнить не закрашенные области прозрачным цветом, используйте опцию c=none
:
ffmpeg \
-i mersyvideo.mp4 \
-i avatar.jpg \
-filter_complex "
[1:v]rotate=-30*PI/180:c=none:ow=rotw(iw):oh=roth(ih)[rotate];
[0:v][rotate]overlay=40:10
" \
-codec:a copy \
output/overlayavatar.mp4
Смотритеrotate
фильтр помощь:
fillcolor
,c
Установите цвет, используемый для заполнения области вывода, не покрытой повернутым изображением. Для общего синтаксиса этой опции проверьте раздел (ffmpeg-utils)"Color" в руководстве ffmpeg-utils. Если выбрано специальное значение "none", фон не печатается (полезно, например, если фон никогда не отображается).
Значение по умолчанию — «черный».