Có một cách đơn giản hơn nhiều so với những cách được đề xuất ở đây, đó là không yêu cầu tính toán số lượng khung hoặc nhập độ dài của các tệp riêng lẻ (đặc biệt tốt hơn để xử lý hàng loạt). Với phiên bản gần đây của ffmpeg, bạn có thể sử dụng -shortest
tùy chọn dừng mã hóa khi luồng ngắn nhất kết thúc - trong trường hợp này là input.mp3 (vì hình ảnh sẽ lặp lại mãi mãi, nó có độ dài vô hạn):
ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4
Điều này sử dụng 2 khung hình mỗi giây cho hình ảnh / video, điều này sẽ ổn, nhưng bạn có thể đặt nó thành 25 tiêu chuẩn hơn nếu bạn muốn.