DJI Windows 10 SDK FFMPEG Буферизация видео - PullRequest
0 голосов
/ 05 марта 2019

Кто-нибудь знает, как уменьшить задержку буферизации в реализации DJI FFMPEG? Кажется, что чем дольше приложение работает с использованием этого API, тем хуже становится задержка. Существуют ли другие параметры, кроме CODEC_FLAG_LOW_DELAY или CODEC_FLAG2_FAST, которые могут помочь уменьшить задержку? Что-то, что я должен установить в av_parser_parse2, чтобы уменьшить задержку? Я, конечно, предполагаю, что задержка связана с API, а не с самим самолетом - просто маловероятно, что у БПЛА есть хранилище для буферизации большого количества видео.

1 Ответ

0 голосов
/ 06 марта 2019

После некоторых экспериментов я обнаружил, что значения pts / dts метода av_parser_parse2 будут влиять на буферизацию кадров. Пример кода DJI использует AV_NOPTS_VALUE для очков и очков; это приводит к постоянно увеличивающейся задержке в видео потоке. Вместо того, чтобы вычислять эти значения, я просто увеличиваю pts на 1000 для каждого раза got_picture == true и устанавливаю dts = pts. Да, это взлом, но это работает. Надеюсь, это поможет другим, кто столкнулся с этой проблемой. Если вы используете проект DJIVideoParser, это изменение можно легко сделать в методе DecoderThread h264_Decoder.cpp.

...