Как заставить WriteStreamSample никогда не отбрасывать пакеты?

Я использую Windows Media Format 11 SDK для копирования видеофайла путем чтения и записи сжатых сэмплов (то есть без декодирования / кодирования - просто копирование необработанных сэмплов).

Моя проблема в том, что писатель сбрасывает пакеты данных! Это неоптимально, так как я хочу сохранить все пакеты данных, которые были в исходном файле. Проблема особенно серьезна, если во входном файле битрейт определен неправильно (в конце концов, есть все виды странных файлов).

Могу ли я использовать какой-либо параметр конфигурации, чтобы полностью отключить удаление пакетов? Я не нашел ничего подобного до сих пор. Я попытался установить очень высокий битрейт и окно буфера, но это просто дало мне неинформативную ошибку при добавлении потока в профиль записи.

Моя единственная альтернатива на данный момент, кажется, состоит в том, чтобы заново реализовать весь код синтаксического анализа ASF, чтобы действительно выполнить операцию низкоуровневого копирования. Тем не менее, это было бы много потраченного времени.

Я что-то пропустил? Можно ли как-то сказать автору записи никогда не сбрасывать пакеты?

Изменить: проблема кажется наиболее серьезной, когда в видео используется кодек WMV2 (Windows Media Video 8). Когда я использую VC-1, видео выводится нормально (или, по крайней мере, близко к нормальному, я не проверял содержимое файла подробно, но визуально это выглядело нормально). Возможно, реализация WMV2 нарушена в медиа-формате SDK как-то? Ну, мне пока придется жить без поддержки WMV2.

0 ответов

Другие вопросы по тегам