1. 源代码:demo.c
建立项目目录:demo,并在其中创建 C 语言源代码 demo.c
。代码如下:
#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-server.h>
int main (int argc, char *argv[]) {
GMainLoop *loop;
GstRTSPServer *server;
GstRTSPMountPoints *mounts;
GstRTSPMediaFactory *factory;
gst_init (&argc, &argv);
loop = g_main_loop_new (NULL, FALSE);
server = gst_rtsp_server_new ();
mounts = gst_rtsp_server_get_mount_points (server);
factory = gst_rtsp_media_factory_new ();
gst_rtsp_media_factory_set_launch (factory, "( videotestsrc is-live=1 ! x264enc ! rtph264pay name=pay0 pt=96 )");
gst_rtsp_media_factory_set_shared (factory, TRUE);
gst_rtsp_mount_points_add_factory (mounts, "/test", factory);
g_object_unref (mounts);
gst_rtsp_server_attach (server, NULL);
g_print ("stream ready at rtsp://127.0.0.1:8554/test\n");
g_main_loop_run (loop);
return 0;
}
上述代码利用 videotestsrc
信号源建立了一个 rtsp 服务器。
2. 编写 Makefile
Makefile 内容如下:
demo: demo.c
gcc demo.c -o demo `pkg-config --cflags --libs gstreamer-1.0 gstreamer-rtsp-server-1.0`
GStreamer 家族的相关 pkg 文件存放在目录 /usr/lib/aarch64-linux-gnu/pkgconfig
下。gstreamer-1.0.pc
、gstreamer-rtsp-server-1.0.pc
也存放在这个目录下。
3. 编译程序
Makefile 写好后,直接执行 make 命令,即可得到 demo
目标文件。
4. 运行
4.1 运行服务器端程序
输入命令 ./demo
,服务器程序及开始运行,并显示如下信息。
$ ./demo
stream ready at rtsp://127.0.0.1:8554/test
4.2 运行客户端程序
找一个视频播放器来做客户端。我用的是 VLC 播放器,我的 rtsp 服务器地址是:rtsp://192.168.119.210:8554/test
。在文件菜单中,“打开网络串流”,输入服务器地址,结果如下: