c++ - 我应该在下面添加什么代码进行同步?
问题描述
这是我在 RTSP 中通过网络流式传输视频的代码。当我打开第二个 Vlc 并再次流式传输视频时从头开始但我想进行同步例如第一个视频在第 20 秒,当我打开它时第二个应该从第 20 秒开始。
我必须做什么来处理同步?
我正在使用 VS17
#include "pch.h"
#include <iostream>
#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-media.h>
#include <gst/rtsp-server/rtsp-server.h>
#include <gst/rtsp-server/rtsp-media-factory-uri.h>
#define PORT "8554"
static char *port = (char *)PORT;
static GOptionEntry entries[] = {
{"port",'p', 0, G_OPTION_ARG_STRING, &port,"Port " PORT "", "PORT"},
{NULL} };
int main(int argc, gchar * argv[])
{
GMainLoop *loop;
GstRTSPServer *server;
GstRTSPMountPoints *mounts;
GstRTSPMediaFactoryURI *factory;
GOptionContext *sample;
GError *error = NULL;
gchar *uri;
sample = g_option_context_new("<uri> - Test RTSP Server, URI");
g_option_context_add_main_entries(sample, entries, NULL);
g_option_context_add_group(sample, gst_init_get_option_group());
if (!g_option_context_parse(sample, &argc, &argv, &error)) {
return -1;
}
loop = g_main_loop_new(NULL, FALSE);
server = gst_rtsp_server_new();
g_object_set(server, "service", port, NULL);
mounts = gst_rtsp_server_get_mount_points(server);
factory = gst_rtsp_media_factory_uri_new();
const char* streamUri =
"https://www.freedesktop.org/software/gstreamer-
sdk/data/media/sintel_trailer-480p.webm";
if (gst_uri_is_valid(streamUri)) {
uri = g_strdup(streamUri);
}
else if (g_file_test(streamUri, G_FILE_TEST_EXISTS)) {
uri = gst_filename_to_uri(streamUri, NULL);
}
else {
printf("There is no uri");
return -1;
}
gst_rtsp_media_factory_uri_set_uri(factory, uri);
g_free(uri);
gst_rtsp_mount_points_add_factory(mounts, "/deneme",
GST_RTSP_MEDIA_FACTORY(factory));
g_object_unref(mounts);
if (gst_rtsp_server_attach(server, NULL) == 0)
printf("FAILED!");
g_print("stream ready at rtsp://127.0.0.1:%s/deneme\n", port);
g_main_loop_run(loop);
return 0;
}
解决方案
推荐阅读
- regex - 模式匹配后的下一个单词
- verification - 在dafny中验证条件下的序列和
- android - MaterialDatePicker : 今天如何设置自定义
- c# - 使用 roslyn 在 c# 源代码中查找类引用
- angular - 量角器:为所有 browser.wait 调用设置超时
- c# - 使用 DisplayModeProvider 指定移动视图的 ASP.NET 应用程序启动时要转到的路由
- java - 使用 OR 检查 if 语句中的多个空值并将错误存储在数组中
- typescript - 从对象创建简单的字符串数组
- groovy - 固定小数位 / Java Groovy
- c# - EntityFramework Core 中的数据库更新异常