VLCJ JPanel для воспроизведения видео потока предварительного просмотра
Это уже третий и последний раз, когда я попытаюсь задать вопрос о Stackru, и мой подход очень специфичен.
У меня есть Java-приложение, которое берет рабочий стол и кодирует его с помощью libx264, а затем передает его с RTMP в twitch.tv. Моя проблема в том, что я хочу предварительно просмотреть поток, и лучший способ, который я нашел, это добавить видеоплеер vlcj в jpanel. И это было сделано.
Но что я не могу сделать: это отправить поток ОБА на Twitch и на экран. И чтобы этот экран взял этот поток и отобразил его.
Стример - это avconv, используемый в libav. (FFmpeg, но для Ubuntu) Bash-код для его загрузки:
`#! /bin/bash
clear
INRES="$1"
OUTRES="$2"
FPS="$3"
QUAL="$4"
STREAM="$5"
avconv \
-f x11grab -s $INRES -r $FPS -i :0.0 -qcomp 1.0 \
-f alsa -ac 2 -i pulse \
-vcodec libx264 -s $OUTRES -preset $QUAL -g 2 \
-acodec libmp3lame -ar 44100 -threads 6 -q:a 3 -b:a 712000 -bufsize 512k \
-f flv $STREAM`
Панель vlcj может даже смотреть видео на YouTube или подергивать видео, но я хочу, чтобы она имела низкую задержку.
Любая помощь приветствуется. Благодарю.
1 ответ
Этот пример в тестовых источниках vlcj передает поток RTP и одновременно отображает видео в JFrame.
Вы должны быть в состоянии адаптировать этот пример к вашим собственным конкретным потребностям, например, если вы транслируете с другим протоколом.
Ключ должен установить правильные параметры потокового вывода vlc "sout" при воспроизведении мультимедиа, в частности, чтобы "продублировать" вывод на "display":
:sout=#duplicate{dst=display,dst=rtp{dst=230.0.0.1,port=5555,mux=ts}}