Я хочу транслировать RTSP Pipeline с помощью сервера MediaMtx . Для этого я использую rtspClientInk of gstreamer.
На данный момент я делаю это с помощью Emgucv , скомпилированной с помощью gstreamer . Но я хотел сделать, используя gstreamer-sharp , потому что, возможно, у меня немного больше производительности.
Это то, что я сделал в данный момент, но я не уверен, что это лучший способ. Я пытался создать gst.buffer с использованием buffer.map () Но поток черный.
Также я хотел знать, должен ли мне использовать Block true или false.
Другая вещь - PST , DST и Downing свойства GST.Buffer . На данный момент я не использую их, но, возможно, я должен это сделать. Вот почему я ищу, какой правильный способ создать GST.Buffer и подталкивать его в конвейер.var command = new StringBuilder();
command.Append("appsrc name=appSource is-live=true do-timestamp=true");
command.Append(" ! videoconvert");
command.Append(" ! qsvh264enc bitrate=10000 low-latency=true target-usage=7");
command.Append(" ! h264parse ");
command.AppendFormat(" ! rtspclientsink location={0}", _streamUrl);
_pipeline = Parse.Launch(command.ToString()) as Pipeline;
_pipeline.Bus.AddWatch(OnBusMessage);
Получить элемент appsrc из Pipeline
var appSrcElement = _pipeline.GetByName("appSource");
_appSrc = new AppSrc(appSrcElement.Handle);
_appSrc.StreamType = AppStreamType.Stream;
_appSrc.Block = true;
_appSrc.Format = Format.Time;
var caps = Caps.FromString("video/x-raw, format=BGR, width=640, height=480, framerate=30/1");
_appSrc.Caps = caps;
push Umat рамы к трубопроводу
public FlowReturn WriteFrame(UMat img)
{
FlowReturn res;
CvInvoke.Resize(img, img, new System.Drawing.Size(640, 480));
using (var mat = img.GetMat(Emgu.CV.CvEnum.AccessType.Read))
{
var length = mat.Rows * mat.Cols * mat.NumberOfChannels;
var data = new byte[length];
Marshal.Copy(mat.DataPointer, data, 0, length);
var buffer = new Gst.Buffer(data);
res = _appSrc.PushBuffer(buffer);
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... gst-buffer
Как создать gst.buffer? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение