2016-06-29 6 views
0

Моя цель получить видеопоток с карты захвата (Blackmagic decklink) в OpenCV и прямой эфир до red5 или любого другого сервера rtmp.OpenCV и Gstreamer потоковое видео в реальном времени

Итак, я попытался выполнить две ветви в gstreamer с командой внизу, работает правильно. Но при использовании с OpenCV только поток черных кадров на сервер rtmp, кстати, opencv работает хорошо.

Gstreamer Команда:

GST-ответно-1,0 -v autovideosrc! tee name = t t. ! видеоконвертер! videoscale! очередь ! x264enc pass = pass1 threads = 4 bitrate = 5000 tune = zerolatency! очередь ! flvmux streamable = true! rtmpsink location = "rtmp: //127.0.0.1/live/stb live = 1" max-lateness = 100 t. ! видео/x-raw, ширина = 1280, высота = 720! appsink код

OpenCV:

String gstSentence = "gst-launch-1.0 -v autovideosrc ! tee name=t " + 
       "t. ! videoconvert ! videoscale ! queue ! x264enc pass=pass1 threads=4 bitrate=5000 tune=zerolatency " + 
       "! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://127.0.0.1/live/stb live=1\" max-lateness=100 " + 
       "t. ! video/x-raw,width=1280,height=720 ! appsink"; 

     System.out.println(gstSentence); 
     videoCapture = new VideoCapture(gstSentence); 

Моя среда:

  • Ubuntu 16,04
  • OpenCV 3.1 - Java Wrapper
  • Gstreamer 1.8.1

Как я могу с этим справиться?

Заранее спасибо.

ответ

1

Проблема в том, что вы оставили gst-launch-1.0 там, который, конечно, не сработает.

Это правильный путь:

String gst = "autovideosrc ! tee name=t " + 
      "t. ! videoconvert ! videoscale ! queue ! x264enc pass=pass1 threads=4 bitrate=5000 tune=zerolatency " + 
      "! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://127.0.0.1/live/stb live=1\" max-lateness=100 " + 
      "t. ! video/x-raw,width=1280,height=720 ! appsink"; 

videoCapture = new VideoCapture(gstSentence); 

Вдохновленный this вопрос ..

И быть в курсе, что есть проблемы с использованием x264enc вместе с тройником .. потому что иногда x264enc хотят предпуска много кадры, которые могут наводнить другую ветвь tee.

+0

OpenCV работает хорошо, но поток RTMP по-прежнему остается черным. Как я могу с этим справиться? Должен ли я изменить RTMP и x264enc? – erdoganonur

Смежные вопросы