Как использовать gst-launch для потоковой передачи аудио и видео в формате mp4 через rtp и воспроизведения?
Я использую эти команды для отправки и получения данных RTP:
Отправить данные rtp на порт UDP 5000
gst-launch-1.0 -v filesrc location = haizeiwang.mp4 ! decodebin ! x264enc ! rtph264pay ! udpsink host=192.168.1.101 port=5000
Получите данные rtp с порта 5000 udp и воспроизведите его.
gst-launch-1.0 -v udpsrc port=5000 caps="application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, payload=96, ssrc=3394826012, timestamp-offset=2215812541, seqnum-offset=46353" ! rtph264depay ! decodebin ! videoconvert ! autovideosink sync=false
Но я могу только получить vedio(не очень ясно), и нет звука. Могу ли я получить видео и аудио одновременно? Какие элементы я должен использовать? Какие команды должны быть?
Спасибо.
1 ответ
Отправитель (аудио + видео):
gst-launch-1.0 -v uridecodebin name=uridec uri=file:///C:\\video.mp4 ! videoconvert ! x264enc noise-reduction=10000 tune=zerolatency byte-stream=true threads=4 key-int-max=15 intra-refresh=true ! mpegtsmux alignment=7 name=mux ! rtpmp2tpay ! queue ! udpsink host=127.0.0.1 port=5000 sync=true uridec. ! audioconvert ! voaacenc ! audio/mpeg ! queue ! mux.
Приемник (аудио + видео, короткая версия):
gst-launch-1.0 -v playbin uri=udp://127.0.0.1:5000
Приемник (аудио + видео, длинная версия):
gst-launch-1.0 -v udpsrc port=5000 ! tsparse ! decodebin name=dec ! videoconvert ! autovideosink sync=true dec. ! queue ! audioconvert ! audioresample ! autoaudiosink sync=true
Если у вас есть доступ к VLC через cmd-линию, вы можете воспроизводить поток с помощью:
vlc rtp://@:5000
Или просто перейдите в графический интерфейс VLC, чтобы открыть сетевой поток (CTRL+N), и используйте адрес, которым я поделился выше.