Я работаю над решением для отображения IP-камеры в компоненте HTML в моем приложении реакции. Я транскодирую прямую трансляцию видео RTSP с помощью VL C в OGG, и мое приложение может успешно найти и отобразить видео. Я использую эту выходную строку потока в VL C для этого:
sout=#transcode{vcodec=theo,vb=800,scale=1,width=600,height=480,acodec=mp3}:http{mux=ogg,dst=127.0.0.1:8080/stream.ogg} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep
Мой источник - простой URL-адрес RTSP rtsp: // Username:Password@IP/axis-media/media.amp?videocodec=h264
Проблема возникает, так как теперь я нужно сделать это в java. Ниже приведен полный код полностью урезанного сервера, который должен был начать транскодирование VL C с использованием VLCJ:
public static void main(String[] args) {
//if (args.length < 1) return;
int connectionCount = 0;
MediaPlayerFactory mFactory;
MediaPlayer mPlayer;
try (ServerSocket serverSocket = new ServerSocket(0)) {
System.out.println("Server is listening on port " + serverSocket.getLocalPort());
while (true && connectionCount == 0) {
Socket socket = serverSocket.accept();
System.out.println("New client connected");
connectionCount++;
System.out.println("Current connection count: " + Integer.toString(connectionCount));
mFactory = new MediaPlayerFactory();
mPlayer = mFactory.mediaPlayers().newMediaPlayer();
String mrl = "LEFT OFF FOR PRIVACY BUT A FUNCTIONAL RTSP LINK";
String options = "sout=#transcode{vcodec=theo,vb=800,scale=1,width=600,height=480,acodec=mp3}:http{mux=ogg,dst=127.0.0.1:8080/desktop.ogg} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep";
mPlayer.media().play(mrl, options);
new ServerThread(socket, mPlayer).start();
}
} catch (IOException ex) {
System.out.println("Server exception: " + ex.getMessage());
ex.printStackTrace();
}
}
}
Так что проблема в том, что строка транскодирования работает идеально в VL C, но выдает эту ошибку в Java. Я удостоверяюсь, что никакие другие потоки VL C не работают в то время. Я не знаю, почему это будет работать безупречно в одном, а не в другом. Ошибка ниже:
[000001bbede1d960] ошибка вывода основного потока: сбой цепочки потоков для `transcode {vcodec = theo, vb = 800, scale = 1, width = 600, height = 480, acodec = mp3}: http {mux = ogg, dst = 127.0.0.1: 8080 / desktop.ogg}: no-sout-rtp-sap: no-sout-standard-sap: ttl = 1: sout-keep '[000001bb96c930d0] ошибка основного ввода: невозможно запускать выходной экземпляр потока, прерывая