我的目标是将视频流从采集卡(Blackmagic decklink)传输到OpenCV并实时传输到red5或任何其他rtmp服务器。OpenCV和Gstreamer流媒体直播视频
所以,我试着用gstreamer中的两个分支完成命令,下面是正常工作。但是,与OpenCV一起使用时,只需将黑帧传输到rtmp服务器,就像opencv运行良好。
的Gstreamer命令:
GST推出-1.0 -v autovideosrc! tee name = t t。 ! videoconvert! 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。 ! video/x-raw,width = 1280,height = 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包装
- 的Gstreamer 1.8.1
我该如何处理它?
在此先感谢。
OpenCV运行良好,但RTMP流仍然是黑色的。我该如何处理它?我应该改变RTMP和x264enc吗? – erdoganonur