проблема с asf writer

Я пытаюсь закодировать необработанные данные (как видеокадр, так и образец звука) в файл .asf, используя фильтр записи asf в directshow. моя структура графа фильтра: raw_send_filter -> asf writer filter raw_send_filter реализует CBaseFilter и CBaseOutputPin. Он играет роль исходного фильтра, который получает необработанные данные, а затем доставляет их в фильтр записи ASF. Процесс состоит из следующих шагов:

  1. Получить буфер доставки (вернуться в «образец») с помощью функции CBaseOutputPin :: GetDeliveryBuffer
  2. образец-> GetPointer (& буфер);
  3. Установить отметку времени (с частотой кадров = 30 кадров в секунду)
  4. доставить образец

Проблема в том, что после кодирования необработанных данных я больше не могу доставить.

Я могу закодировать файл .avi таким образом, используя фильтр Avi mux. Можете ли вы сказать мне, почему я не могу доставить образцы после кодирования?

Спасибо.


person hatham    schedule 28.12.2010    source источник
comment
Можете ли вы кодировать в asf, если вы просто отправляете очень короткий фрагмент аудио и видео? Например 100 мс?   -  person wimh    schedule 05.01.2011


Ответы (1)


Возможно, мультиплексор ASF ожидает дополнительных данных. Убедитесь, что вы отправляете аудио и видео с одинаковой скоростью.

person wimh    schedule 05.01.2011