Я использую простую команду ffmpeg, чтобы изменить размер и дополнить изображения, чтобы они поместились в рамку 960x540. Мне бы хотелось, чтобы отступы были прозрачными, но я получаю разное поведение на разных изображениях.
Команда:
ffmpeg -y -i image.PNG -vf \
"scale=iw*min(960/iw\,540/ih):ih*min(960/iw\,540/ih),pad=960:540:(960-iw)/2:(540-ih)/2:color=#00000000" \
new.png
Кажется, что сделанные мной скриншоты PNG получаются прозрачным фоном, как и ожидалось. JPG, кажется, получают черный отступ, даже если я преобразую их в PNG перед раздачей.
Кажется, я вижу разницу в rgb24 против rgba. Это проблема? Если так, как я могу изменить это свойство перед заполнением?
Черная обивка:
Metadata:
encoder : Lavf57.25.100
Stream #0:0: Video: png, rgb24, 960x540 [SAR 1926:1925 DAR 3424:1925], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
Прозрачная прокладка:
Metadata:
encoder : Lavf57.25.100
Stream #0:0: Video: png, rgba, 960x540, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc