Как заставить WriteStreamSample никогда не отбрасывать пакеты? - PullRequest
0 голосов
/ 20 июня 2011

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

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

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

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

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

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

...