Я транслирую видео h265 по UDP с RTP. Конвейер получателя находится ниже, он декодирует и отображает видео, а также сохраняет его с помощью fileink.
udpsrc port=6014 ! application/x-rtp,encoding-name=H265,payload=96 ! rtph265depay ! h265parse ! tee name=t1 ! queue ! avdec_h265 ! xvimagesink sync=false async=false t1. ! queue ! mpegtsmux ! filesink location=%s.ts sync=true
Беспроводная линия передачи данных, по которой передается это видео, иногда очень прерывистая. При низком качестве ссылки отображаемое видео имеет пиксельное или иное очень плохое качество. Когда ссылка полностью исчезла, отображаемое видео просто остается на последнем принятом кадре. Когда ссылка возвращается, отображаемое видео возвращается к нормальному состоянию. Это все нормально и ожидаемо.
У меня только небольшая проблема в сохраненном видео. При воспроизведении, например, в. VLC, таймер не продвигается в периоды без ссылки. Например, если связь была потеряна от t = 10 с до t = 30 с, то когда воспроизведение видео достигнет t = 10, оно будет выглядеть просто замороженным (без предварительной отметки времени) до t = 30, когда оно пропускается до 30. Я думаю, что в эти промежутки времени вообще нет данных; я хотел бы повторить последний кадр вместо этого. Во всяком случае для fileink сделать это? Или я могу что-то сделать в постобработке, чтобы исправить?