ffmpeg - thay thế âm thanh trong video


48

Làm cách nào để thay thế âm thanh trong tệp video bằng tệp âm thanh bằng ffmpeg?

Tôi tưởng tượng lệnh trông giống như:

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4

Điều này rất giống với Cách thay thế luồng âm thanh trong tệp video bằng nhiều luồng âm thanh? nhưng câu hỏi đó xử lý nhiều rãnh âm thanh, điều này làm phức tạp nó rất nhiều, khiến nó không rõ phần nào của giải pháp là đủ cho một trao đổi âm thanh đơn giản.

Câu trả lời:


68

Bạn sẽ muốn sao chép luồng video mà không cần mã hóa lại để tiết kiệm nhiều thời gian nhưng mã hóa lại âm thanh có thể giúp ngăn chặn sự không tương thích:

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

-map 0:v:0ánh xạ 0luồng video (chỉ mục ) đầu tiên từ đầu vào sang 0luồng video (chỉ mục ) đầu tiên trong đầu ra.

-map 1:a:0ánh xạ 1luồng âm thanh (chỉ mục ) thứ hai từ đầu vào sang 0luồng âm thanh (chỉ mục ) đầu tiên trong đầu ra.

Nếu âm thanh dài hơn video, bạn sẽ muốn thêm -shortesttrước tên tệp đầu ra.

Không chỉ định codec âm thanh, sẽ tự động chọn một codec hoạt động. Bạn có thể chỉ định từng cái bằng cách thêm vào -c:a libvorbissau -c:v copy.


2
hoặc trực tiếp -c copyđể chỉ phát lại âm thanh và video mà không cần mã hóa lại bất kỳ luồng nào ^^
Francesco Yoshi Gobbo

1
Bạn có biết cách chuyển đổi âm thanh mới trên cùng định dạng (có cùng tham số) như trong video gốc không? Ý tôi là, tôi cần âm thanh mới được mã hóa theo cùng một cách như âm thanh cũ.
Kostanos

Hoạt động như quyến rũ !!
Tessaracter

@Kostanos không tự động nhưng tôi muốn. Xin hỏi một câu hỏi khác. Bạn có thể tham khảo cái này để làm rõ rằng cái của bạn là mới.
qubodup
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.