#synchronization #video-streaming #gstreamer #rtp
Вопрос:
Я использую GStreamer для воспроизведения видеопотока UDP, а конец потоковой передачи-функция проецирования экрана в телефонах Android.Мой конвейер GStreamer выглядит следующим образом:
udpsrc port=1991 caps="application/x-rtp,clock-rate=90000, media=video" ! rtpjitterbuffer latency=200 mode=4 ! rtpmp2tdepay ! tsdemux name=demuxer demuxer. ! queue name=video_ch max-size-buffers=0 max-size-time=0 ! h264parse ! queue name=dec0 max-size-buffers=0 max-size-time=0 ! avdec_h264 max-threads=0 skip-frame=1 output-corrupt=false ! videoconvert n-threads=0 ! autovideosink force-aspect-ratio=false sync=false async=false demuxer. ! queue max-size-buffers=0 max-size-time=0 ! aacparse ! avdec_aac ! audioconvert ! audioresample ! autoaudiosink sync=false
Однако аудио и видео будут несинхронизированы во время работы этого конвейера, и чем дольше время воспроизведения, тем очевиднее несинхронизация аудио и видео.Но медлить нельзя.Когда sync
настройки параметров autovideosink
и autoaudiosink
удаляются, аудио и видео всегда можно синхронизировать, но задержка составляет около одной секунды.Мой конвейер GStreamer выглядит следующим образом:
udpsrc port=1991 caps="application/x-rtp,clock-rate=90000, media=video" ! rtpjitterbuffer latency=200 mode=4 ! rtpmp2tdepay ! tsdemux name=demuxer demuxer. ! queue name=video_ch max-size-buffers=0 max-size-time=0 ! h264parse ! queue name=dec0 max-size-buffers=0 max-size-time=0 ! avdec_h264 max-threads=0 skip-frame=1 output-corrupt=false ! videoconvert n-threads=0 ! autovideosink force-aspect-ratio=false async=false demuxer. ! queue max-size-buffers=0 max-size-time=0 ! aacparse ! avdec_aac ! audioconvert ! audioresample ! autoaudiosink
Но при использовании VLC для прямого воспроизведения сетевого потока rtp://@:1991, задержка видео очень мала, что находится в пределах допустимого диапазона, и аудио и видео всегда можно синхронизировать.
Я не знаю, установлены ли какие-либо из моих параметров неправильно, или есть проблема с этим методом синхронизации аудио и видео.