2010-03-04 40 views
6

Tôi đang làm việc trên ffmpeg và cố gắng thêm luồng âm thanh khi đang di chuyển. Tôi đang sử dụng AudioQueues và tôi nhận được bộ đệm âm thanh thô. Tôi đang mã hóa âm thanh với PCM tuyến tính và do đó âm thanh tôi nhận được sẽ có định dạng thô, mà tôi biết ffmpeg chấp nhận nó. Nhưng tôi không thể hiểu được làm thế nào. Tôi đã nhìn vào AVStream, nơi chúng ta phải tạo một luồng mới cho kênh âm thanh này nhưng làm cách nào để mã hóa nó thành một video đã được khởi tạo trong một cấu trúc AVStream khác.Thêm kênh âm thanh bằng ffmpeg

Nhìn chung, tôi muốn có ý tưởng về kiến ​​trúc của ffmpeg. Tôi thấy rất khó để làm việc vì nó ít nhất là tài liệu. Bất kỳ con trỏ hoặc chi tiết nào đều được đánh giá cao.

Cảm ơn và Kính trọng, Raj Pawan G

+0

Xin chào, bạn có bất kỳ mẫu nào liên quan đến OSX, m cố gắng làm việc trên cùng một số – Swati

+0

Tôi không có quyền truy cập vào mã nguồn không may! –

Trả lời

2

Nếu bạn muốn sử dụng java, bạn sẽ tìm thấy một tốt hơn nhiều tờ chi wrapper API cho FFmpeg với Xuggler.

Điều đó nói rằng, FFmpeg có thể hỗ trợ Raw PCM bu tnot tất cả các vùng chứa có thể chứa nó. sử dụng các codec PCM (xem avcodec.h) và tìm một tệp có kích thước và thuộc tính bạn muốn. Để thêm âm thanh vào cùng một vùng chứa, hãy tìm đối tượng AVFormatContext mà bạn sử dụng cho luồng video hiện có của mình và sử dụng av_new_stream (...) để thêm luồng mới. Sau đó đính kèm bộ mã hóa PCM của bạn và 'mã hóa' vào đó và viết các gói kết quả. Xem output_example.c trong FFmpeg để biết các ví dụ về API này đang hoạt động.

+1

Ya cảm ơn, tôi đã bắt đầu đi theo hướng đó. Tôi về cơ bản sau output_example.c và sẽ lấy lại cho bạn nếu tôi bị tấn công bất cứ nơi nào. Tôi đang sử dụng Cocoa mặc dù, không phải java. Nhưng dù sao đi nữa, ngôn ngữ thực hiện là một trừu tượng cho các cuộc gọi FFMpeg! –

Các vấn đề liên quan