Bạn có thể thực hiện lớp phủ hình ảnh đơn giản bằng cú pháp sau:
ffmpeg -i input.mp4 -i image.png \
-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,0,20)'" \
-pix_fmt yuv420p -c:a copy \
output.mp4
overlay=25:25
có nghĩa là chúng tôi muốn định vị hình ảnh 25px ở bên phải và xuống 25px, bắt nguồn từ góc trên cùng bên trái (0: 0).
enable='between(t,0,20)'
có nghĩa là chúng tôi muốn hình ảnh hiển thị trong khoảng từ 0 đến 20.
[0:v][1:v]
có nghĩa là chúng tôi muốn tệp video đầu tiên chúng tôi nhập -i
, trong trường hợp input.mp4 hoặc cách ffmpeg thấy tệp đầu vào video số 0, nằm trong tệp đầu vào video 1, trong trường hợp của chúng tôi image.png. :v
chỉ có nghĩa là chúng tôi muốn video 0 và video 1. [0:a]
có nghĩa là chúng tôi muốn bản nhạc âm thanh được nhập đầu tiên. Điều này cũng sẽ đến từ input.mp4 nhưng sẽ trỏ đến đoạn âm thanh thay vì đoạn video trong tệp mp4.
Nếu bạn muốn có một chất lượng / cài đặt hình ảnh nhất định chứ không phải cài đặt mà ffmpeg chọn, hãy thêm các tùy chọn mã hóa hình ảnh và âm thanh bạn muốn sử dụng. Bộ mã hóa video mặc định sẽ là x264. Kiểm tra hướng dẫn mã hóa H.264 để biết các cài đặt có thể.
Các -acodec copy
/ -c:a copy
mà bạn có trong lệnh của bạn fe sẽ chỉ đơn giản là tái sử dụng các âm thanh từ các tập tin nguồn. Mặc dù bạn không thể làm điều đó với video tất nhiên (trong trường hợp này), điều đó phải được chuyển mã vì chúng tôi đang tạo nguồn video mới.
Nếu bạn muốn chuyển mã âm thanh, hãy loại bỏ -c:a copy
phần đó. Bạn có thể phải xác định rõ ràng một bộ mã hóa, ví dụ -c:a aac -strict experimental
. Xem hướng dẫn mã hóa AAC để biết thêm.