Я использую FFMPEG с C ++ для чтения кадров и декодирования их из потока RTSP на IP-камере.
Все в порядке, но во время декодирования я пытаюсь изменить конфигурацию разрешения потока на IP-камере (например: изменить с 1280х720 до 1920х1080).
Результат равен av_read_frame()
, в то время как l oop все еще считывает успешные последующие кадры (с новым разрешением) без ошибок. Поэтому я не могу обнаружить это изменение для повторного запуска буфера или повторного подключения потока для обновления информации другого потока.
av_read_frame()
будет считывать AVPacket. Если я могу прочитать информацию о разрешении в AVPacket, то я могу обнаружить это изменение и переустановить буфер. Но я не вижу никакой информации о разрешении в структуре AVPacket.
Кто-то может мне помочь, как обнаружить изменение разрешения при чтении и декодировании потока?
ОБНОВЛЕНИЕ
I ' м с использованием многих кодеков, таких как H264 и H265 / H265 +. Этот случай произошел со всеми тремя вышеописанными кодеками.
Во многих случаях я также сохраняю AVPacket для последующего воспроизведения, поэтому нет необходимости в декодировании. Мне нужно немедленно определить изменение разрешения, чтобы правильно построить информацию заголовка для хранения на жестком диске.
Большое спасибо!