- Nếu độ dài video ngắn hơn độ dài âm thanh,
-shortest
là những gì bạn muốn.
- Nếu độ dài video dài hơn độ dài âm thanh, không có cờ nào sẽ là thứ bạn muốn.
Không có cờ để tự động hóa quyết định này.
BIÊN TẬP
Lấy cảm hứng từ câu trả lời của @ deadcode, tôi cần phải làm rõ rằng "không có cờ để tự động hóa" tất nhiên là không đúng, nếu bạn sẵn sàng mã hóa lại : Trong trường hợp này, hãy đi apad
theo đề xuất của @deadcode.
Tuy nhiên, nếu bạn muốn tránh mã hóa lại (tức là -c:v copy
), câu trả lời là viết tắt.
Có một cách giải quyết bằng cách sử dụng bộ giải ffconcat
mã, nhưng nó cần một chút công việc:
- tạo một tệp chứa khoảng im lặng ở định dạng chính xác giống như audiofile của bạn ("shut.wav")
- tạo một tập tin concat "audio.ffconcat" (có nhiều dòng im lặng như bạn cần để đảm bảo âm thanh của bạn đủ dài):
.
file 'audiofile.wav'
file 'silence.wav'
file 'silence.wav'
...
file 'silence.wav'
- chạy
ffmpeg -i videofile.mp4 -f concat -i audio.ffconcat -c:v copy output.mp4
Điều này sẽ tổng hợp apad
bộ lọc mà không có đồ thị bộ lọc, do đó cho phép một mux mà không cần mã hóa lại.