Как создать gst.buffer?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать gst.buffer?

Сообщение Anonymous »

Я хочу транслировать 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Buffer Buffer Opengl Buffic
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Buffer Buffer Opengl Buffic
    Anonymous » » в форуме Linux
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Buffer Buffer Opengl Buffic
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Buffer Buffer Opengl Buffic
    Anonymous » » в форуме Linux
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Почему Byte [] передается в чтение (Buffer [] Buffer, Int Offset, Int Count) в моей реализации iSampleProvider?
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»