2013-01-24 31 views
19

Tôi có thể phủ hai tệp âm thanh mp3 vào một tệp đầu ra mp3 bằng ffmpeg không?Làm thế nào để che phủ hai tệp âm thanh bằng ffmpeg

+0

Bạn có thể giải mã tất cả trong số họ, trộn ([hoạt động khá đơn giản] (http://stackoverflow.com/a/4567156/453271)) và mã hóa một lần nữa –

+1

Bạn có thể xin vui lòng đề cập đến lệnh để làm việc đó đi. Tôi đã kiểm tra các bài viết khác mà bạn đã đề cập trong liên kết của bạn nhưng nó đã không giúp đỡ. – Faisal

+0

@Faisalcan u xin vui lòng hướng dẫn tôi .. làm thế nào để xây dựng ffmpeg trên ubuntu? nếu có thì tôi sẽ đăng câu hỏi mới trên Stackoverflow với tất cả các chi tiết cần thiết .. – TheFlash

Trả lời

29

Bạn có thể làm điều này với ffmpeg sử dụng amerge lọc:

ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3 
  • Xem amerge lọc tài liệu trực tuyến và FFmpeg Wiki: Audio Channel Manipulation fo r nhiều ví dụ, thông tin và tùy chọn hơn.

  • -ac 2 sẽ tạo đầu ra âm thanh nổi. Điều này rất hữu ích nếu bạn đang hợp nhất hai đầu vào âm thanh nổi: amerge sẽ tạo ra đầu ra 4 kênh và -ac 2 sẽ chèn âm thanh xuống thành âm thanh nổi.

  • Tham khảo Hydrogenaudio Wiki: Recommended LAME encoder settings để biết ý tưởng về giá trị -q:v (chất lượng âm thanh) bạn có thể muốn.

+1

Cảm ơn, nó thực sự giúp đỡ và thực hiện mà không có lỗi. Nhưng các tệp âm thanh của tôi có độ dài khác nhau. Bạn có bất kỳ ý tưởng rằng làm thế nào để tạo ra tập tin đầu ra với độ dài tối đa của các tập tin đầu vào? – Faisal

+0

xin bạn có thể đưa ra ví dụ bằng cách đặt đường dẫn và giá trị giả mạo. Nó sẽ được đánh giá cao –

+0

Nó sẽ được sử dụng như thế này ?? {"ffmpeg", "- i", Âm thanh "- i", Audio2, "-filter_complex", "amerge", "-c: a", "libmp3lame", "- q: a", "4" , filenameVideoReplace}; –

0

Với Bash

set 'amovie=a.mp3 [gg]; amovie=b.mp3 [hh]; [gg][hh] amerge' 
ffmpeg -f lavfi -i "$1" -q 0 c.mp3 

Example

+0

Cảm ơn nó đã giúp. nếu độ dài của cả hai tệp là khác nhau thì sao? – Faisal

2

Nếu họ là độ dài khác nhau, bạn có thể sử dụng apad để thêm một âm thanh im lặng để ngắn nhất một

10

Kiểm tra này ra:

ffmpeg -y -i ad_sound/whistle.mp3 -i ad_sound/4s.wav -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame ad_sound/outputnow.mp3 

Tôi nghĩ rằng nó sẽ giúp đỡ.

+0

điều này làm việc tốt hơn cho tôi, như chăm sóc sự khác biệt trong chiều dài .. đây là cách tôi trộn ba âm thanh: ffmpeg -i flute_long.ogg -i gallop.ogg -i wind.ogg -filter_complex "[0: 0] [1: 0] amix = input = 3: duration = longest" main.ogg – cesarpachon

+0

Có cách nào để điều chỉnh âm lượng trên một trong các tệp đầu vào xuống 20% ​​không? – chovy

4

Bộ lọc amix giúp kết hợp nhiều đầu vào âm thanh vào một đầu ra duy nhất.

Nếu bạn chạy lệnh sau:

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT 

Lệnh này sẽ kết hợp 3 đầu vào luồng âm thanh (tôi đã sử dụng hai tập tin mp3, trong ví dụ dưới đây) vào một đầu ra duy nhất với thời gian tương tự như các đầu vào đầu tiên và thời gian chuyển đổi bỏ học là 3 giây.

Bộ lọc amix chấp nhận các thông số sau:

  • đầu vào: Số lượng đầu vào. Nếu không được chỉ định, giá trị mặc định là 2.

  • thời lượng: Cách xác định kết thúc luồng.

    • dài nhất: Thời gian đầu vào dài nhất. (mặc định)

    • ngắn nhất: Thời lượng của đầu vào ngắn nhất.

    • trước tiên: Thời lượng của lần nhập đầu tiên.

  • dropout_transition: Thời gian chuyển tiếp, chỉ trong vài giây, cho khối lượng tái chuẩn hóa khi thêm một input stream kết thúc. Giá trị mặc định là 2 giây.

Ví dụ, tôi chạy lệnh sau trong Ubuntu: FFMPEG phiên bản: 3.2.1-1 Ubuntu 16.04.1

ffmpeg -i background.mp3 -i bSound.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -codec:a libmp3lame -q:a 0 OUTPUT.mp3 

-codec:a libmp3lame -q:a 0 đã được sử dụng để thiết lập một tốc độ bit biến. Hãy nhớ rằng, bạn cần phải cài đặt thư viện libmp3lame, nếu cần thiết. Nhưng, nó sẽ hoạt động ngay cả khi không có phần -codec:a libmp3lame -q:a 0.

tham khảo: https://ffmpeg.org/ffmpeg-filters.html#amix

+0

Giải thích hoàn hảo về amix :) – EnriMR