GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo
- 作者: 五速梦信息网
- 时间: 2026年04月20日 04:37
#define DEBUG printf(“%s:%d\n”, FILE, LINE) void test001HelloWorldDemo(int *argc, char **argv[]) {
GstElement *pipeline;
GstBus *bus;
GstMessage *msg;
// 步骤一:初始化gst
gst_init(argc, argv);
// 步骤二:定义管道(指定渲染器,否则ubuntu上渲染画面会出错)
// pipeline = gst_parse_launch(“playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm", NULL);
pipeline = gst_parse_launch("playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm video-sink=\"ximagesink\"", NULL);
// 步骤三:开始播放(设置管道的运行状态:空、准备、播放、暂停)
gst_element_set_state (pipeline, GST_STATE_PLAYING);
// 步骤四:获取管道的总线
bus = gst_element_get_bus (pipeline);
// 步骤五:阻塞获取bus上指定的消息返回(未获取到则阻塞)
msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
// 步骤六:消息的处理(这里有很多消息,只是举例子一个
if(GST_MESSAGE_TYPE(msg) == GST_MESSAGE_ERROR)
{
g_printerr ("An error occurred! Re-run with the GST_DEBUG=*:WARN "
"environment variable set for more details.\n");
}
// 步骤七:释放资源(其中管道先设置状态空:该状态将会回收所有被该组件占用的资源,然后再释放)
gst_message_unref (msg);
gst_object_unref (bus);
gst_element_set_state (pipeline, GST_STATE_NULL);
gst_object_unref (pipeline);
} “`
工程模板v1.0.0
emsp;emsp;
入坑
入坑一:播放画面异常
问题
emsp;emsp;播放画面错位
emsp;emsp;
emsp;emsp;测试原本文件应该是:
emsp;emsp;
尝试
emsp;emsp;命令行去检测,也是异常:
emsp;emsp;
emsp;emsp;测试windows上,是正常:
emsp;emsp;
emsp;emsp;所以是系统装的环境可能有问题。重新切换虚拟机使用ubuntu20.04重新制作虚拟机,用起来还是一样,有问题:
emsp;emsp;
emsp;emsp;用网页测试,没问题:
emsp;emsp;
emsp;emsp;用vlc测试,也没问题:
emsp;emsp;
emsp;emsp;然后测试其他地址试试,发现没问题:
emsp;emsp;
解决
后来发现是需要指定渲染器才行。
相关文章
-
gRPC+Proto 实现键盘记录器 —— 深度实战解析
gRPC+Proto 实现键盘记录器 —— 深度实战解析
- 互联网
- 2026年04月20日
-
Gradio.Net:加速 .NET 的 Web 应用开发
Gradio.Net:加速 .NET 的 Web 应用开发
- 互联网
- 2026年04月20日
-
GoProxy使用记录,记录一些常见的用法
GoProxy使用记录,记录一些常见的用法
- 互联网
- 2026年04月20日
-
gucci是什么意思(为什么gucci口红不火)
gucci是什么意思(为什么gucci口红不火)
- 互联网
- 2026年04月20日
-
HideRarInImage: 小巧实用的文件隐藏工具
HideRarInImage: 小巧实用的文件隐藏工具
- 互联网
- 2026年04月20日
-
Hive SQL实现近N周的数据统计查询
Hive SQL实现近N周的数据统计查询
- 互联网
- 2026年04月20日








