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

深圳高端电商网站建设者京东关键词优化技巧

深圳高端电商网站建设者,京东关键词优化技巧,web前端做网站,百度联盟网站有哪些一、前言 上次实现的文件推流,尽管优点很多,但是只能对现在存在的生成好的音视频文件推流,而现在更多的场景是需要将实时的视频流重新推流分发,用户在很多设备比如手机/平板/网页/电脑/服务器上观看,这样就可以很方便…

一、前言

上次实现的文件推流,尽管优点很多,但是只能对现在存在的生成好的音视频文件推流,而现在更多的场景是需要将实时的视频流重新推流分发,用户在很多设备比如手机/平板/网页/电脑/服务器上观看,这样就可以很方便的将分散的视频流统一集中的流媒体服务器上,然后统一对外分发视频,而不是全部从设备端取流,大大减轻了设备端的压力,流媒体服务器就专门干这个事情负责分发,功能单一不容易出错,支持的并发数量很高。除了能够对网络摄像头的实时视频流转发,还可以将电脑桌面/本地摄像头实时视频推流出去,类似的技术主要应用在各类教育直播、在线会议、视频监控领域。

推拉流一般涉及到三个程序要素:推流程序比如ffmpeg,拉流程序比如ffplay或各种播放器,流媒体服务程序比如mediamtx(原rtsp-simple-server)、srs、EasyDarwin、LiveQing、ZLMediaKit,刚开始做推流开发都会有个疑问,以为只要有推流拉流就可以玩起来,其实都需要有个专门的流媒体服务程序做接收流并分发,其实ffmpeg全家桶以前还自带个ffserver就是流媒体服务程序,后面可能因为不是主业逐渐去掉了这个。个人推荐用mediamtx,go写的,单文件,支持windows、linux、mac三大操作系统,亲测全部好用。如果需要有管理的后台那就推荐LiveQing。

二、效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、体验地址

  1. 国内站点:https://gitee.com/feiyangqingyun
  2. 国际站点:https://github.com/feiyangqingyun
  3. 个人作品:https://blog.csdn.net/feiyangqingyun/article/details/97565652
  4. 体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 文件名:bin_video_push。

四、相关代码

bool FFmpegSave::initVideoMp4()
{//必须先设置过输入视频流if (!videoStreamIn || fileName.isEmpty()) {return false;}AVDictionary *options = NULL;QByteArray fileData = fileName.toUtf8();const char *url = fileData.data();//既可以是保存到文件也可以是推流(对应格式要区分)const char *format = "mp4";if (fileName.startsWith("rtmp")) {format = "flv";} else if (fileName.startsWith("rtsp")) {format = "rtp";av_dict_set(&options, "stimeout", "3000000", 0);av_dict_set(&options, "rtsp_transport", "tcp", 0);//如果前缀是rtsp需要强制改成rtp否则报错提示 Protocol not foundQString temp = fileName.replace("rtsp://", "rtp://");url = temp.toUtf8().data();}//开辟一个格式上下文用来处理视频流输出int result = avformat_alloc_output_context2(&formatCtx, NULL, format, url);if (result < 0) {debug("创建格式", QString("错误: %1").arg(FFmpegHelper::getError(result)));return false;}//创建视频流用来输出视频数据到文件videoStreamOut = avformat_new_stream(formatCtx, NULL);result = FFmpegHelper::copyContext(videoCodecCtx, videoStreamOut, true);if (result < 0) {debug("创建视频", QString("错误: %1").arg(FFmpegHelper::getError(result)));goto end;}//打开输出文件result = avio_open(&formatCtx->pb, url, AVIO_FLAG_WRITE);if (result < 0) {debug("打开输出", QString("错误: %1").arg(FFmpegHelper::getError(result)));goto end;}//写入文件开始符result = avformat_write_header(formatCtx, &options);if (result < 0) {debug("写入失败", QString("错误: %1").arg(FFmpegHelper::getError(result)));goto end;}return true;end://关闭释放并清理文件this->close();this->deleteFile(fileName);return false;
}void FFmpegPushClient::start()
{if (ffmpegThread || videoUrl.isEmpty()) {return;}//实例化视频采集线程ffmpegThread = new FFmpegThread;//关联播放开始信号用来启动推流connect(ffmpegThread, SIGNAL(receivePlayStart(int)), this, SLOT(receivePlayStart(int)));//收到一帧数据用于保存文件connect(ffmpegThread, SIGNAL(receivePacket(AVPacket *)), this, SLOT(receivePacket(AVPacket *)));//关联录制信号变化用来判断是否推流成功connect(ffmpegThread, SIGNAL(recorderStateChanged(RecorderState, QString)), this, SLOT(recorderStateChanged(RecorderState, QString)));//设置播放地址ffmpegThread->setVideoUrl(videoUrl);//设置硬件加速ffmpegThread->setHardware(hardware);//设置解码内核ffmpegThread->setVideoCore(VideoCore_FFmpeg);//设置视频模式ffmpegThread->setVideoMode(VideoMode_Opengl);//设置读取超时时间超时后会自动重连ffmpegThread->setReadTimeout(5 * 1000);//设置连接超时时间(0表示一直连)ffmpegThread->setConnectTimeout(0);//设置重复播放相当于循环推流ffmpegThread->setPlayRepeat(true);//设置解码线程仅仅用作推流ffmpegThread->setOnlyPush(true);ffmpegThread->setPushAndSave(!fileName.isEmpty());//设置音视频保存类型ffmpegThread->setSaveAudioType(SaveAudioType_None);ffmpegThread->setSaveVideoType(SaveVideoType_Mp4);//如果是本地设备或者桌面录屏要取出其他参数VideoType videoType = VideoHelper::getVideoType(videoUrl);if (videoType == VideoType_Camera || videoType == VideoType_Desktop) {QString deviceName = videoUrl;QString resolution = "0x0";int frameRate, offsetX, offsetY;//如果地址带了摄像头参数或者桌面参数则需要取出对应的参数if (videoType == VideoType_Camera) {VideoHelper::getCameraPara(VideoCore_FFmpeg, deviceName, resolution, frameRate);} else if (videoType == VideoType_Desktop) {VideoHelper::getDesktopPara(VideoCore_FFmpeg, deviceName, resolution, frameRate, offsetX, offsetY);}ffmpegThread->setVideoUrl(deviceName);ffmpegThread->setBufferSize(resolution);ffmpegThread->setFrameRate(frameRate);ffmpegThread->setProperty("offsetX", offsetX);ffmpegThread->setProperty("offsetY", offsetY);}ffmpegThread->play();
}void FFmpegPushClient::stop()
{//停止推流和采集并彻底释放对象if (ffmpegThread) {ffmpegThread->recordStop();ffmpegThread->stop();ffmpegThread->deleteLater();ffmpegThread = NULL;}//停止录制if (ffmpegSave) {ffmpegSave->stop();ffmpegSave->deleteLater();ffmpegSave = NULL;}
}

五、功能特点

5.1 文件推流

  1. 指定网卡和监听端口,接收网络请求推送音视频等各种文件。
  2. 实时统计显示每个文件对应的访问数量、总访问数量、不同IP地址访问数量。
  3. 可指定多种模式,0-直接播放、1-下载播放。
  4. 实时打印显示各种收发请求和应答数据。
  5. 每个文件对应MD5加密的唯一标识符,用于请求地址后缀区分访问哪个文件。
  6. 支持各种浏览器(谷歌chromium/微软edge/火狐firefox等)、各种播放器(vlc/mpv/ffplay/potplayer/mpchc等)打开请求。
  7. 播放过程中可以任意切换播放进度,支持倍速播放。
  8. 需要推流的文件名称历史记录自动存储和打开加载应用。
  9. 切换文件获取访问地址,自动拷贝地址到剪切板方便直接粘贴测试使用。
  10. 极低CPU占用,128路1080P同时推流不到1%CPU占用,异步发送数据机制。
  11. 纯QTcpSocket通信,不依赖流媒体服务程序,核心源码不到500行,注释详细,功能完整。
  12. 支持Qt4/Qt5/Qt6任意版本,支持任意系统(windows/linux/macos/android/嵌入式linux等)。

5.2 网络推流

  1. 支持各种本地视频文件和网络视频文件。
  2. 支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。
  3. 支持将本地摄像头设备推流,可指定分辨率和帧率等。
  4. 支持将本地桌面推流,可指定屏幕区域和帧率等。
  5. 自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。
  6. 可实时切换预览视频文件。
  7. 推流的清晰度和质量可调。
  8. 可动态添加文件、目录、地址。
  9. 视频文件自动循环推流,如果视频源是视频流,在掉线后会自动重连。
  10. 网络视频流自动重连,重连成功自动继续推流。
  11. 网络视频流实时性极高,延迟极低,延迟时间大概在100ms左右。
  12. 推流后除了用rtmp地址访问以外,还支持直接hls/webrtc访问,可以直接浏览器打开看实时画面。
  13. 支持Qt4/Qt5/Qt6任意版本,支持任意系统(windows/linux/macos/android/嵌入式linux等)。
http://www.yidumall.com/news/4906.html

相关文章:

  • 齐齐哈尔网站建设买号链接
  • 小说网站怎么做java中国疫情最新数据
  • 淘客app网站是怎么做的软件制作
  • 找人做淘宝网站需要多少钱郑州网站设计有哪些
  • 如何做网站url优化网络热词大全
  • 认证空间官方网站商品推广软文范例100字
  • 深圳地质建设网站网络营销的主要手段和策略
  • web前端培训机构有哪些比较好的刷移动端seo软件
  • 国家药品监督管理局网站优化seo方案
  • wordpress的json apiseo网站排名优化公司哪家
  • 网络查控系统设计方案长沙seo结算
  • 做网站需要ftp品牌宣传策划方案
  • 自己做视频网站有点卡百度竞价排名服务
  • 海南疫情最新消息今天网络seo是什么意思
  • wordpress 获取文章tagseo核心技术排名
  • 深圳网站备案查询网站建设一般多少钱
  • title 芜湖网站制作网页制作app手机版
  • 食品网站建设优化案例纯注册app拉新平台
  • 做政府网站的公司泰州seo
  • 互联网公司排名前1000个网络优化工程师主要做什么
  • 网站开发专业的建设设想营销技巧
  • 网站模板库营销渠道模式有哪些
  • 哪些网站做任务好赚钱的优化服务是什么意思
  • 广州建设档案馆网站推广品牌的方法
  • 苏州手机社区网站建设百度热搜榜小说排名
  • 郑州公司企业网站建设自助建站申请
  • 小城镇建设网站参考文献网站seo工具
  • 博彩网站开发建设如何提高网站seo排名
  • 企业网站建设管理平台广告投放平台公司
  • 网站怎样在360做优化电商培训有用吗