小编DJI*_*ver的帖子

如何通过gstreamer获取h264帧

我熟悉 ffmpeg,但不熟悉 GStreamer。我知道如何通过ffmpeg获取H264帧,例如我可以通过AVPacket获取H264帧。但我不知道如何使用GStreamer来获取h264的帧。我不打算将H264数据直接保存为本地文件,因为我需要做其他处理。谁能给我一些示例代码?我将非常感激。这是我从其他人的代码中学到的。

#include <stdio.h>
#include <string.h>
#include <fstream>
#include <unistd.h>
#include <gst/gst.h>
#include <gst/app/gstappsrc.h>

typedef struct {
    GstPipeline *pipeline;
    GstAppSrc  *src;
    GstElement *filter1;
    GstElement *encoder;
    GstElement *filter2;
    GstElement *parser;
    GstElement *qtmux;
    GstElement *sink;

    GstClockTime timestamp;
    guint sourceid;
} gst_app_t;

static gst_app_t gst_app;

int main()
{
    gst_app_t *app = &gst_app;
    GstStateChangeReturn state_ret;
    gst_init(NULL, NULL); //Initialize Gstreamer
    app->timestamp = 0; //Set timestamp to 0

    //Create pipeline, and pipeline elements
    app->pipeline = (GstPipeline*)gst_pipeline_new("mypipeline");
    app->src    =   (GstAppSrc*)gst_element_factory_make("appsrc", "mysrc");
    app->filter1 =  gst_element_factory_make ("capsfilter", "myfilter1"); …
Run Code Online (Sandbox Code Playgroud)

c codec gstreamer h.264

5
推荐指数
1
解决办法
6736
查看次数

标签 统计

c ×1

codec ×1

gstreamer ×1

h.264 ×1