Декодировать и передавать h264 через udp с помощью GStreamer
Я пытаюсь декодировать видео с h264 и перекодировать его для передачи клиенту через UDP:
На стороне передатчика:
gst-launch-1.0 -v filesrc location=/home/ubuntu/Videos/test.mp4 ! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv ! omxh264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000
На стороне получателя:
gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse ! omxh264dec ! nveglglessink
Я делаю это локально, для теста, на NVidia Tegra TK1, но ничего не отображается, хотя никаких ошибок не возникает.
Кто-нибудь видит, что добавить? Заранее спасибо.
1 ответ
Хорошо, наконец-то я заработал, но использовал другой сетевой протокол:
Только для тестирования, отправляйте и получайте локально на самом Tegra TK1:
Послать:
gst-launch-1.0 filesrc location=/home/ubuntu/Videos/test.mp4 ! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv ! omxh264enc ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=127.0.0.1 port=5000
Получать:
gst-launch-1.0 -v tcpclientsrc host=127.0.0.1 port=5000 ! gdpdepay ! rtph264depay ! h264parse ! omxh264dec ! nveglglessink sync=false
Результат нестабилен, но на данном этапе мне все равно. Я получаю что-то!!
Получите на Ubuntu PC:
gst-launch-1.0 -v tcpclientsrc host=<Tegra IP> port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false