Vc1 воспроизведения видео рывков

Я пытаюсь воспроизвести видео с кодировкой vc1 в контейнере matroska.

Для этого я использую ffmpeg av_read_frame функция и видеодрайвер, который требует AVPacketданные должны начинаться с заголовка PES.
В AVPacket только dts поле действительно, pts является AV_NOPTS_VALUE, я пишу dts значение в заголовок PES вместо pts,

Видеодрайвер регистрирует постоянное изменение частоты кадров с 23976 до 24000 и наоборот. Видео дергается. Хотя я поместил частоту кадров в заголовок PES (значение 23976 — это то, что дает зондирование ffmpeg), но, видимо, оно меняется в соответствии с точками текущего пакета.

Я пытался смотреть на AVCodecParserContext«s pts_dts_delta а также dts_ref_dts_delta но они из AV_NOPTS_VALUE, его pts а также dts такие же как из AVPacket

Посоветуйте, пожалуйста, как получить правильные значения pts или что делать, чтобы решить эту проблему.

Благодарю.

РЕДАКТИРОВАТЬ:
Я видел в ffplay.c они используют av_frame_get_best_effort_timestamp но это после декодирования средствами ffmpeg, что я не могу себе позволить.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]