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

莱州建设局网站网站建设技术解决方案

莱州建设局网站,网站建设技术解决方案,如何开一家网络营销公司,浙江网站建设企业avformat 用于解析容器和协议(protocol)。 avcodec 用于编码和解码基本流(您已经拥有的)。 Qt/C音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)_feiyangqingyun的博客-CSDN博客 void FFmpegThread::initInputFormat() {//本地摄像头/桌…

avformat 用于解析容器和协议(protocol)。 avcodec 用于编码和解码基本流(您已经拥有的)。

Qt/C++音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)_feiyangqingyun的博客-CSDN博客

void FFmpegThread::initInputFormat()
{//本地摄像头/桌面录屏if (videoType == VideoType_Camera) {
#if defined(Q_OS_WIN)//ifmt = av_find_input_format("vfwcap");ifmt = av_find_input_format("dshow");
#elif defined(Q_OS_LINUX)//可以打开cheese程序查看本地摄像头(如果是在虚拟机中需要设置usb选项3.1)//ifmt = av_find_input_format("v4l2");ifmt = av_find_input_format("video4linux2");
#elif defined(Q_OS_MAC)ifmt = av_find_input_format("avfoundation");
#endif} else if (videoType == VideoType_Desktop) {
#if defined(Q_OS_WIN)ifmt = av_find_input_format("gdigrab");
#elif defined(Q_OS_LINUX)ifmt = av_find_input_format("x11grab");
#elif defined(Q_OS_MAC)ifmt = av_find_input_format("avfoundation");
#endif}
}bool FFmpegThread::initInput()
{//实例化格式处理上下文formatCtx = avformat_alloc_context();//设置超时回调(有些不存在的地址或者网络不好的情况下要卡很久)formatCtx->interrupt_callback.callback = FFmpegHelper::avinterruptCallBackFun;formatCtx->interrupt_callback.opaque = this;//打开输入(通过标志位控制回调那边做超时判断)//其他地方调用 formatCtx->url formatCtx->filename 可以拿到设置的地址(两个变量值一样)tryOpen = true;QByteArray urlData = VideoHelper::getRightUrl(videoType, videoUrl).toUtf8();int result = avformat_open_input(&formatCtx, urlData.data(), ifmt, &options);tryOpen = false;if (result < 0) {debug("打开出错", "错误: " + FFmpegHelper::getError(result));return false;}//根据自己项目需要开启下面部分代码加快视频流打开速度//开启后由于值太小可能会出现部分视频流获取不到分辨率if (decodeType == DecodeType_Fastest && videoType == VideoType_Rtsp) {//接口内部读取的最大数据量(从源文件中读取的最大字节数)//默认值5000000导致这里卡很久最耗时(可以调小来加快打开速度)formatCtx->probesize = 50000;//从文件中读取的最大时长(单位为 AV_TIME_BASE units)formatCtx->max_analyze_duration = 5 * AV_TIME_BASE;//内部读取的数据包不放入缓冲区//formatCtx->flags |= AVFMT_FLAG_NOBUFFER;//设置解码错误验证过滤花屏//formatCtx->error_recognition |= AV_EF_EXPLODE;}//获取流信息result = avformat_find_stream_info(formatCtx, NULL);if (result < 0) {debug("找流失败", "错误: " + FFmpegHelper::getError(result));return false;}//解码格式formatName = formatCtx->iformat->name;//某些格式比如视频流不做音视频同步(响应速度快)if (formatName == "rtsp" || videoUrl.endsWith(".sdp")) {useSync = false;}//设置了最快速度则不启用音视频同步if (decodeType == DecodeType_Fastest) {useSync = false;}//有些格式不支持硬解码if (formatName.contains("rm") || formatName.contains("avi") || formatName.contains("webm")) {hardware = "none";}//本地摄像头设备解码出来的直接就是yuv显示不需要硬解码if (videoType == VideoType_Camera || videoType == VideoType_Desktop) {useSync = false;hardware = "none";}//过低版本不支持硬解码
#if (FFMPEG_VERSION_MAJOR < 3)hardware = "none";
#endif//获取文件时长(这里获取到的是秒)double length = (double)formatCtx->duration / AV_TIME_BASE;duration = length * 1000;this->checkVideoType();//有时候网络地址也可能是纯音频if (videoType == VideoType_FileHttp) {onlyAudio = VideoHelper::getOnlyAudio(videoUrl, formatName);}if (getIsFile()) {//文件必须要音视频同步useSync = true;//发送文件时长信号emit receiveDuration(duration > 0 ? duration : 0);}QString msg = QString("格式: %1 时长: %2 秒 加速: %3").arg(formatName).arg(duration / 1000).arg(hardware);debug("媒体信息", msg);return true;
}

在线电子书

main入口函数分析—ffplay.c源码分析 · FFmpeg原理

http://www.dt0577.cn/news/19547.html

相关文章:

  • 做 直销网站 公司名称网站优化招商
  • ecshop做视频电商网站友情链接的作用
  • 潍坊网站建设 马友情链接还有用吗
  • 蜂鸟摄影网官网站长之家 seo查询
  • 北京h5网站建设报价今日的新闻
  • 金点子招聘信息seo排名关键词点击
  • 高碑店市建设局网站亚洲足球最新排名
  • 猪八戒网做网站如何北京seo关键词
  • 登陆中国建设银行网站我的账户密码怎么就有了?怎么清除长尾词挖掘免费工具
  • 求生之路2怎么做非官方网站石家庄seo网络优化的公司
  • 全国公路建设信用网站小网站搜什么关键词好
  • 福州网站怎么做的小说引流推广
  • 网站建设的数据所有权火星时代教育培训机构官网
  • 网站建设需要哪些软件3d建模培训班一般多少钱
  • 阳泉那有做网站的优化师的工作内容
  • 汉中网站建设市场营销在线课程
  • 齐家网装修口碑怎么样东莞百度seo
  • 上海微网站制作建设网页优化方法
  • 在什么网站上做外贸惠州百度seo哪里强
  • 网站建设珠海 新盈科技公司我想在百度上发布广告怎么发
  • dw做的网站怎么全屏nba最新消息交易
  • 属于公司的网站怎么做网站seo标题是什么意思
  • 网站开发点击滚动图片印度疫情为何突然消失
  • 兰州网站建设优化制作公司包就业的培训机构
  • 网站标题做参数百度竞价ocpc
  • 云空间的网站如何做企业软文代写
  • 怎么制作一个网站的二维码百度推广代运营公司
  • 免费网站空间10g百度seo代理
  • 精品个人网站源码下载爱站网关键词查询系统
  • 安徽p2p网站建设软文的本质是什么