Tôi muốn sử dụng lame để mã hóa các tập tin mp3, nhưng thay vì viết nó trực tiếp vào một tập tin, tôi muốn đưa nó vào một chương trình khác mà cuối cùng sẽ ghi nó ra một nơi nào đó. Vấn đề là nếu què phát hiện ra rằng đầu ra của nó là một luồng thì nó không ghi tiêu đề VBR và người chơi tìm ra độ dài của tệp sai. Ví dụ: nếu tôi làm điều này, thì tệp kết quả sẽ sai:
lame infile.wav - >outfile.mp3
Tôi đã thử mẹo sau:
lame infile.wav /dev/stdout >outfile.mp3
Nó dường như hoạt động lúc đầu, nhưng chỉ khi thiết bị xuất chuẩn được chuyển hướng trực tiếp đến một tệp. Trường hợp sau không hoạt động:
lame infile.wav /dev/stdout | cat >outfile.mp3
Nếu tôi sử dụng ffmpeg (hoặc avconv) làm mặt trước để khập khiễng, tôi đã gặp chính xác vấn đề tương tự.
Có cách nào để nói khập khiễng rằng tôi muốn nó viết tiêu đề VBR ngay cả khi nó nghĩ rằng nó đang ghi vào một luồng?