我的目标是从采集卡(Blackmagic decklink)获取视频流到 OpenCV 并实时流到 red5 或任何其他 rtmp 服务器。
所以,我尝试在 gstreamer 的两个分支上完成,下面的命令工作正常。但是,当与 OpenCV 一起使用时,只需将黑帧流式传输到 rtmp 服务器,顺便说一下,opencv 运行良好。
Gstreamer 命令:
gst-launch-1.0 -v autovideosrc !三通名称=t t。!视频转换!视频缩放!队列 !x264enc pass=pass1 threads=4 bitrate=5000 tune=zerolatency !队列 !flvmux 可流=真!rtmpsink location="rtmp://127.0.0.1/live/stb live=1" max-lateness=100 t。!视频/x-raw,宽度=1280,高度=720!应用程序
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
我该如何处理?
提前致谢。