2009-08-12 4 views
2

Я хочу декодировать поток WMA до 16 бит PCM. Теперь у меня есть вопрос относительно FFMpeg-, что выходной формат ..Декодирование WMA с FFMpeg на PCM

Len = avcodec_decode_audio2 (с, (int16_t *) OutBuf, & outbuf_used, inbuf_ptr, размер);

Это правильная функция для выполнения этой задачи?

Спасибо

ответ

2

Замечания: попробуйте задать этот вопрос в списке пользователей FFmpeg. Вы обязательно найдете там гуру ffmpeg.

В основном я использую ffmpeg для кодирования/декодирования видео. Для декодирования «avcodec_decode_ *» - это правильные вещи, которые нужно использовать для ... декодирования. Что вы получаете ... 16 бит PCM.

Что я имею в виду, так это то, что декодирование мультимедийного потока может быть сложным, а ffmpeg - это довольно низкий уровень lib. Трудно быть более точным только с строкой кода, который вы даете (по крайней мере, вы должны уточнить свои параметры).

О чем следует помнить, так это то, что при чтении мультимедийного потока вы должны сначала делить поток (иногда даже если в вашем контейнере есть только один поток), а затем декодировать его с помощью правого кодека. Если вы правильно демультиплексированные ваш поток, правильно инициализирован ваш кодек контекст/кодек, то вы можете позвонить avcodec_decode и он будет работает :)

Как вы упоминаете C++ в тегах, вы можете попробовать C++ обертывание для FFmpeg: FOBS использование намного проще, но, конечно, вы теряете точный контроль ...

Надеюсь, это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^