Làm thế nào để tạo ra một sóng hình sin với ffmpeg?


9

Tôi muốn tạo một tệp âm thanh với sóng hình sin (hình sin) với FFmpeg. Tôi biết có một sine lọc nhưng đó là xa như nó đi.

Tôi đã thử:

fmpeg -filter "sine=48:1:5" -c:a pcms16le test

để tạo 5 giây âm thanh ở 48kHz ở định dạng PCM S16LE, nhưng tôi nhận được thông báo lỗi sau:

Tệp đầu ra # 0 không chứa bất kỳ luồng nào

test tập tin trống

Câu trả lời:


17

Để tạo tín hiệu 1000 Hz trong thời gian 5 giây, hãy sử dụng:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" test.wav

Bạn có thể thêm -c:a pcm_s16le:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -c:a pcm_s16le test.wav    

Để đặt tốc độ lấy mẫu thành 48 KHz:

ffmpeg -f lavfi -i "sine=frequency=1000:sample_rate=48000:duration=5" -c:a pcm_s16le test.wav

1
Bạn cũng có thể đặt biên độ bằng cách thêm ví dụ: -af "volume=-18dB" (cho -18dBFS).
mivk

5

Xin lỗi vì đã làm điều này, nhưng trong trường hợp ai đó đến từ tương lai tìm kiếm điều này, nếu bạn muốn làm điều này trong âm thanh nổi, bạn sẽ làm như sau:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 output.wav

Bạn cũng có thể sử dụng -filter_complex với amerge:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -filter_complex "[0:a][0:a]amerge=inputs=2[aout]" -map "[aout]" output.wav
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.