当前位置: 首页 > wzjs >正文

怎么做后台网站一键更新晋城推广型网站建设

怎么做后台网站一键更新,晋城推广型网站建设,沈阳企业免费建站,360浏览器网址说明: c使用gstreamer完成录制电脑桌面的功能 我希望用gstreamer录屏,默认10秒,自动保存录屏文件到本地 这里是不带声音的版本,仅录屏, step1:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeL…

说明:

c++使用gstreamer完成录制电脑桌面的功能
我希望用gstreamer录屏,默认10秒,自动保存录屏文件到本地
这里是不带声音的版本,仅录屏,
step1:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(CMakeProject1)# 查找 GStreamer
find_package(PkgConfig REQUIRED)
pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0 gstreamer-app-1.0)# 包含目录
include_directories(${GSTREAMER_INCLUDE_DIRS}
)# 链接目录
link_directories(${GSTREAMER_LIBRARY_DIRS}
)add_executable(CMakeProject1 CMakeProject1.cpp)# 链接库
target_link_libraries(CMakeProject1${GSTREAMER_LIBRARIES}
)# C++ 标准设置
set_target_properties(CMakeProject1 PROPERTIESCXX_STANDARD 17CXX_STANDARD_REQUIRED ON
)

step2:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeProject1.cpp

#include <gst/gst.h>
#include <iostream>int main(int argc, char* argv[]) {// 设置插件路径(Windows 必需)g_setenv("GST_PLUGIN_PATH", R"(D:\Program Files\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0)", TRUE);// 初始化 GStreamergst_init(&argc, &argv);g_setenv("GST_DEBUG", "4", TRUE);  // 设置日志级别// 构建屏幕录制管道// 修改管道描述为:const gchar* pipeline_desc ="dx9screencapsrc ! "                  // Windows 屏幕捕获源"videoconvert ! "                     // 视频格式转换"videorate ! "                        // 帧率控制"video/x-raw,framerate=30/1 ! "       // 设置输出帧率"x264enc tune=zerolatency ! "         // H.264 编码"mp4mux ! "                           // MP4 封装"filesink location=\"C:/Users/wangrusheng/Desktop/screen_recording.mp4\""; // 输出路径GError* error = nullptr;GstElement* pipeline = gst_parse_launch(pipeline_desc, &error);if (error) {std::cerr << "管道创建失败: " << error->message << std::endl;g_clear_error(&error);return -1;}if (!pipeline) {std::cerr << "无法创建录制管道" << std::endl;return -1;}// 启动管道GstStateChangeReturn ret = gst_element_set_state(pipeline, GST_STATE_PLAYING);if (ret == GST_STATE_CHANGE_FAILURE) {std::cerr << "无法开始录制" << std::endl;gst_object_unref(pipeline);return -1;}std::cout << "开始屏幕录制(10秒)..." << std::endl;// 等待10秒(单位:微秒)g_usleep(10 * 1000000);// 发送EOS信号结束录制gst_element_send_event(pipeline, gst_event_new_eos());std::cout << "正在保存录屏文件..." << std::endl;// 监听总线事件GstBus* bus = gst_element_get_bus(pipeline);GstMessage* msg = gst_bus_timed_pop_filtered(bus,GST_CLOCK_TIME_NONE,static_cast<GstMessageType>(GST_MESSAGE_ERROR | GST_MESSAGE_EOS));// 处理消息if (msg != nullptr) {switch (GST_MESSAGE_TYPE(msg)) {case GST_MESSAGE_ERROR: {GError* err = nullptr;gchar* debug = nullptr;gst_message_parse_error(msg, &err, &debug);std::cerr << "错误: " << err->message << std::endl;if (debug) std::cerr << "调试信息: " << debug << std::endl;g_clear_error(&err);g_free(debug);break;}case GST_MESSAGE_EOS:std::cout << "录屏已保存至桌面 screen_recording.mp4" << std::endl;break;default:break;}gst_message_unref(msg);}// 清理资源gst_object_unref(bus);gst_element_set_state(pipeline, GST_STATE_NULL);gst_object_unref(pipeline);return 0;
}

我是分割线
下面是带声音的录屏

step101:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(CMakeProject1)# 查找 GStreamer
find_package(PkgConfig REQUIRED)
pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0 gstreamer-app-1.0)# 包含目录
include_directories(${GSTREAMER_INCLUDE_DIRS}
)# 链接目录
link_directories(${GSTREAMER_LIBRARY_DIRS}
)add_executable(CMakeProject1 CMakeProject1.cpp)# 链接库
target_link_libraries(CMakeProject1${GSTREAMER_LIBRARIES}
)# C++ 标准设置
set_target_properties(CMakeProject1 PROPERTIESCXX_STANDARD 17CXX_STANDARD_REQUIRED ON
)

step102:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeProject1.cpp

#include <gst/gst.h>
#include <iostream>int main(int argc, char* argv[]) {// 设置 GStreamer 插件路径(Windows 必需)g_setenv("GST_PLUGIN_PATH", R"(D:\Program Files\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0)", TRUE);// 初始化 GStreamergst_init(&argc, &argv);g_setenv("GST_DEBUG", "4", TRUE);  // 设置详细日志级别// 构建音视频录制管道const gchar* pipeline_desc =// 视频采集分支"dx9screencapsrc ! "                   // Windows 屏幕捕获源"videoconvert ! "                      // 视频格式转换"videorate ! "                         // 帧率控制"video/x-raw,framerate=30/1 ! "        // 设置输出帧率为30fps"x264enc tune=zerolatency ! "          // H.264视频编码"queue ! "                             // 视频缓冲队列"mux.video_0 "                         // 视频流入口到混合器// 音频采集分支"wasapisrc ! "                         // Windows音频输入"audioconvert ! "                      // 音频格式转换"audioresample ! "                     // 音频重采样"audio/x-raw,channels=2,rate=44100 ! " // 设置音频参数(立体声,44.1kHz)"voaacenc bitrate=128000 ! "          // AAC音频编码(128kbps)"queue ! "                             // 音频缓冲队列"mux.audio_0 "                         // 音频流入口到混合器// 混合输出"mp4mux name=mux ! "                   // 音视频混合器"filesink location=\"C:/Users/wangrusheng/Desktop/screen_recording.mp4\"";  // 输出路径// 创建管道GError* error = nullptr;GstElement* pipeline = gst_parse_launch(pipeline_desc, &error);if (error) {std::cerr << "管道创建失败: " << error->message << std::endl;g_clear_error(&error);return -1;}if (!pipeline) {std::cerr << "无法创建录制管道" << std::endl;return -1;}// 启动管道GstStateChangeReturn ret = gst_element_set_state(pipeline, GST_STATE_PLAYING);if (ret == GST_STATE_CHANGE_FAILURE) {std::cerr << "无法开始录制" << std::endl;gst_object_unref(pipeline);return -1;}std::cout << "开始同步录制屏幕和音频(10秒)..." << std::endl;// 等待录制时间(10秒)g_usleep(10 * 1000000);// 发送结束信号gst_element_send_event(pipeline, gst_event_new_eos());std::cout << "正在保存文件..." << std::endl;// 监听总线事件GstBus* bus = gst_element_get_bus(pipeline);GstMessage* msg = gst_bus_timed_pop_filtered(bus,GST_CLOCK_TIME_NONE,static_cast<GstMessageType>(GST_MESSAGE_ERROR | GST_MESSAGE_EOS));// 处理事件if (msg != nullptr) {switch (GST_MESSAGE_TYPE(msg)) {case GST_MESSAGE_ERROR: {GError* err = nullptr;gchar* debug = nullptr;gst_message_parse_error(msg, &err, &debug);std::cerr << "错误: " << err->message << std::endl;if (debug) std::cerr << "调试信息: " << debug << std::endl;g_clear_error(&err);g_free(debug);break;}case GST_MESSAGE_EOS:std::cout << "文件已保存至:C:/Users/wangrusheng/Desktop/screen_recording.mp4" << std::endl;break;default:break;}gst_message_unref(msg);}// 清理资源gst_object_unref(bus);gst_element_set_state(pipeline, GST_STATE_NULL);gst_object_unref(pipeline);return 0;
}

end


文章转载自:

http://QBSfAANE.cwgpL.cn
http://Q5bEjgmq.cwgpL.cn
http://TvmUNjLS.cwgpL.cn
http://9EnGAPRt.cwgpL.cn
http://0H6o9lSq.cwgpL.cn
http://QDWWWYAE.cwgpL.cn
http://D2W1pvsY.cwgpL.cn
http://47DLeQEc.cwgpL.cn
http://G90UBzSf.cwgpL.cn
http://X4qrw0Gw.cwgpL.cn
http://5cvoiK8E.cwgpL.cn
http://bFswBTGQ.cwgpL.cn
http://QgdjXvhM.cwgpL.cn
http://exWf35Cm.cwgpL.cn
http://nGPJM0jp.cwgpL.cn
http://7ZmRIZ0V.cwgpL.cn
http://l4k3U65o.cwgpL.cn
http://PdgOPsAN.cwgpL.cn
http://7xyWRW7B.cwgpL.cn
http://ftnggUx2.cwgpL.cn
http://BcZPy9M2.cwgpL.cn
http://mz04CJ8n.cwgpL.cn
http://7ga9DCCg.cwgpL.cn
http://kzxbtFe2.cwgpL.cn
http://u0TIIvuk.cwgpL.cn
http://tIU3uTK2.cwgpL.cn
http://lCQsNELz.cwgpL.cn
http://qwHX7PNa.cwgpL.cn
http://UIqGqWQp.cwgpL.cn
http://y9k9DmSV.cwgpL.cn
http://www.dtcms.com/wzjs/738829.html

相关文章:

  • 广西网站建设与规划胶州经济技术开发区 建设局 网站
  • 凡科建站官网页更换视频做阀门网站电话
  • 大港做网站刹车片图纸网站建设
  • 网站运营管理的内容有哪些什么是网站运营推广
  • 网站平台建设呈现全新亮点棋盘网站开发
  • 西安有哪些做网站建设的公司广东东莞建设网
  • 国外网页游戏网站合肥建站企业
  • 护肤品网站建设方案电商网站制作流程图
  • 网站设计简单吗汕头中小企业网站制作
  • 福建建设局网站织梦网站被植入广告
  • 酒店网站 方案网站建设技术分为哪些方向
  • wordpress网站不稳定平邑建设银行网站
  • 北京外包做网站如何报价南宁做网站优化的公司
  • 机关门户网站建设要求重庆建筑特种作业查询网
  • 青海省城乡建设信息官官方网站凡客诚品羽绒服
  • 教育网站制作多少费用wordpress还原数据库备份
  • 墟沟企业建站价格表域名备案服务
  • 国内最专业的设计网站建设济南网约车公司
  • 青岛网站建设公司有哪些建外贸商城网站
  • 要如何自己创建一个网站潞电建设公司官网
  • 网站开发与微信对接邵武建设局网站
  • php 手机网站开发中国上海官网
  • iis7.5 没有默认网站学生制作网站建设 维护
  • 网站制作 企业网站建设哪家好如何做网站帮别人赚钱
  • 中国空间站进展php是专门做网站的
  • 即墨建设局网站大连seo优化
  • 上海做网站比较好的公司有哪些菏泽建设公司网站
  • 手机商城网站模板个人建设网站难吗
  • 网站怎么做图片放映效果成都程序员培训机构
  • 郑州市做网站的公司建网站的流程及注意事项