비가 내리는 사람 2022-03-09 12:49 采纳率: 100%
浏览 12
已结题

如何显示一下的效果图,并且已经把库环境和视频路径修改了

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <gst/gst.h>

#define BOOL  _Bool

#define FILE_LEN 100
#define URI_LEN 128
#define PIPELINE_LEN 255
#define URI_HEADER "file://"
#define PLAYBIN_HEADER "playbin uri="

BOOL GetInputParam(int argc, char **argv, char *fileName)
{
    if (argc < 2) {
        printf("input argc nums error\n");
        return FALSE;
    }

    int len = strlen(argv[1]);
    if (len > FILE_LEN) {
        printf("the length of input file name is too long to set\n");
        return FALSE;
    }

    memcpy(fileName, argv[1], strlen(argv[1]));
    return TRUE;
}

int main(int argc, char *argv[])
{
    char fileName[FILE_LEN] = {0};
    char uri[URI_LEN] = {0};
    char myPipeline[URI_LEN] = {0};
    GstElement *pipeline;
    GstBus *bus;
    GstMessage *msg;
BOOL ret = GetInputParam(argc, argv, fileName);
    if (ret != TRUE) {
        printf("argc error please check, [eg: ./playbin_test /home/my/Videos/h264_320x480_universe.mp4]\n");
        return FALSE;
    }

    sprintf(uri, "%s%s", URI_HEADER, fileName);
    printf("uri: %s\n", uri);

    sprintf(myPipeline, "%s%s", PLAYBIN_HEADER, uri);
    printf("myPipeline: %s\n", myPipeline);

    /* Initialize GStreamer */
    gst_init(&argc, &argv);

    /* Build the pipeline */
    pipeline = gst_parse_launch(myPipeline, NULL);

    /* Start playing */
    gst_element_set_state(pipeline, GST_STATE_PLAYING);

    /* Wait until error or EOS */
    bus = gst_element_get_bus(pipeline);
    msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE,
                                     GST_MESSAGE_ERROR | GST_MESSAGE_EOS);

    /* Free resources */
    if (msg != NULL)
        gst_message_unref(msg);
    gst_object_unref(bus);
    gst_element_set_state(pipeline, GST_STATE_NULL);
    gst_object_unref(pipeline);
    return TRUE;
}
编译环境:ubuntu 18.04以上
编译命令:
gcc playbin.c -o playbin pkg-config --cflags --libs gstreamer-1.0

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月17日
    • 修改了问题 3月9日
    • 创建了问题 3月9日

    悬赏问题

    • ¥99 利用C/C++语言,使用TCP/IP协议,编一个简易聊天程序
    • ¥15 如何使用python 实现对串口/dev/ttyUSB0进行上锁,使得该串口只能在一个python脚本中使用,其他脚本不能操作这个串口
    • ¥15 晶体塑性有限元——Damask求解
    • ¥15 写出这个有没有人能写一下今天中午就要
    • ¥30 设计一个图形用户界面来控制你机械臂的运动
    • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
    • ¥15 RPG游戏架构设计和开发方法
    • ¥15 前端返回pdf时不显示内容
    • ¥50 如何在不能联网影子模式下的电脑解决usb锁
    • ¥20 服务器redhat5.8网络问题