Đây là mã của tôi có thêm một hình ảnh cho video, chạy qua PHP:FFMPEG: Thêm một hình ảnh kích thước cố định trên một đoạn video, không phụ thuộc vào chiều rộng video và chiều cao (độ phân giải)
exec('ffmpeg -i input.mp4 -i logo.png -filter_complex
"[0:v][1:v] overlay=10:10" -pix_fmt yuv420p -c:a copy output.mp4');
Nó hoạt động tốt nhưng vấn đề là, hình ảnh được thu nhỏ lại hoặc lên, lên trên độ phân giải video. Ví dụ trong hình ảnh sau chiều rộng logo là 50px
nhưng độ phân giải video khác nhau:
và điều này một
Làm thế nào tôi có thể ngăn chặn các hình ảnh từ nhân rộng xuống/lên ?
Cập nhật
Nhờ Mulvya, ông đề nghị các mã
ffmpeg -i input.mp4 -i logo.png -filter_complex
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[base][wm]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4
và
ffmpeg -i input.mp4 -i logo.png -filter_complex
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[wm]setsar=1[wmsar];
[base][wmsar]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4
rằng hoạt động rất tốt, nhưng nó không giữ các khía cạnh biểu tượng tỉ lệ. Tôi đã thử mã này trên hai video với độ phân giải khác nhau và đây là kết quả
và điều này một
Có thể cải thiện giải pháp này?
Cảm ơn bạn rất nhiều. Tôi ** cập nhật ** câu hỏi, có một vấn đề rất nhỏ với giải pháp của bạn – Drupalist
Độ phân giải logo của bạn là gì? – Mulvya
để thử nghiệm, nó là 505X384. – Drupalist