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

销售类网站模板百度有几种推广方式

销售类网站模板,百度有几种推广方式,百度 seo优化作用,机器人编程培训机构1 简介 1.1 起源与发展历程 FFmpeg诞生于2000年#xff0c;由法国工程师Fabrice Bellard主导开发#xff0c;其名称源自Fast Forward MPEG#xff0c;初期定位为多媒体编解码工具。2004年后由Michael Niedermayer接任维护#xff0c;逐步发展成为包含音视频采…1 简介 1.1 起源与发展历程 FFmpeg诞生于2000年由法国工程师Fabrice Bellard主导开发其名称源自Fast Forward MPEG初期定位为多媒体编解码工具。2004年后由Michael Niedermayer接任维护逐步发展成为包含音视频采集、格式转换、流媒体处理等完整功能的开源项目。经过25年迭代当前最新7.x版本已支持H.266/VVC、AV1等新一代编码标准在全球开发者社区贡献下形成包含7大核心库的生态系统。 1.2 核心功能与架构组成 该工具链以libavcodec编解码库为核心涵盖libavformat封装格式处理、libswscale图像缩放、颜色空间转化等、libavfilter滤镜系统等模块支持200种媒体格式的相互转化。其命令行工具集可执行视频剪辑、帧率调整、硬件加速转码等操作广泛应用于直播推流、视频会议、智能安防等领域。通过LGPL/GPL协议保障开源生态已成为VLC、Blender等知名软件的基础依赖组件。 2 下载 为了避免复杂的编译过程达到快速上手使用的目的我们推荐使用官方预编译包。下载地址官网 注意一定选择含share字符的编译包。 3 VS2022开发FFMPEG的环境配置 FFMPEG作为一个标准的第三方库其配置思路是与OpenCV、OpenVINO等是一样的。在工程里面配置好头文件路径、库文件路径和名称以及二进制文件的路径。下面我实际演示下如何一步步进行配置。 3.1 解压安装包 将下载的压缩包解压至无中文路径的目录中我把它解压在D:/Tool目录下。 可以大致看下FFMPEG的目录结构 bin二进制文件目录。doc使用帮助文档。include头文件。lib库文件。presets一些标准分辨率的vpx的预设文件。 3.2 新建工程 使用VS2022新建控制台工程空项目即可。 3.3 配置头文件 右键项目 →属性→VC 目录包含目录增加D:\Tool\ffmpeg-7.1-full_build-shared\include。 3.4 配置库文件 右键项目 →属性→VC 目录库目录增加D:\Tool\ffmpeg-7.1-full_build-shared\lib。 配置库名称 3.5 配置二进制文件 建议直接使用环境变量进行配置方便省事。 3.6 环境测试 #include iostream extern C { #include libavcodec/avcodec.h }int main() {std::cout FFmpeg版本: avcodec_version() std::endl;return 0; }4、读取mp4文件opencv显示。 为验证FFMPEG的环境是否彻底安装完成我们采用一个小的例子程序进行验证。读取一个mp4文件使用FFMPEG进行格式解析并转为RGB格式使用opencv进行显示。 #include iostream #include opencv2/opencv.hppextern C { #include libavformat/avformat.h #include libswscale/swscale.h }int main() {// FFmpeg初始化avformat_network_init();AVFormatContext* fmt_ctx nullptr;// 打开媒体文件替换为你的MP4路径const char* filename input.mp4;if(avformat_open_input(fmt_ctx, filename, nullptr, nullptr) ! 0) {std::cerr 无法打开文件 std::endl;return -1;}// 查找视频流信息if(avformat_find_stream_info(fmt_ctx, nullptr) 0) {std::cerr 无法获取流信息 std::endl;avformat_close_input(fmt_ctx);return -1;}// 定位视频流int video_stream -1;AVCodecParameters* codec_par nullptr;for(int i 0; i fmt_ctx-nb_streams; i) {if(fmt_ctx-streams[i]-codecpar-codec_type AVMEDIA_TYPE_VIDEO) {video_stream i;codec_par fmt_ctx-streams[i]-codecpar;break;}}if(video_stream -1) {std::cerr 未找到视频流 std::endl;avformat_close_input(fmt_ctx);return -1;}// 获取解码器const AVCodec* codec avcodec_find_decoder(codec_par-codec_id);if(!codec) {std::cerr 不支持的解码器 std::endl;avformat_close_input(fmt_ctx);return -1;}// 创建解码上下文AVCodecContext* codec_ctx avcodec_alloc_context3(codec);avcodec_parameters_to_context(codec_ctx, codec_par);if(avcodec_open2(codec_ctx, codec, nullptr) 0) {std::cerr 无法打开解码器 std::endl;avcodec_free_context(codec_ctx);avformat_close_input(fmt_ctx);return -1;}// 初始化SWS转换上下文SwsContext* sws_ctx sws_getContext(codec_ctx-width, codec_ctx-height, codec_ctx-pix_fmt,codec_ctx-width, codec_ctx-height, AV_PIX_FMT_RGB24,SWS_BILINEAR, nullptr, nullptr, nullptr);// 分配帧内存AVFrame* frame av_frame_alloc();AVFrame* rgb_frame av_frame_alloc();int buffer_size av_image_get_buffer_size(AV_PIX_FMT_RGB24, codec_ctx-width, codec_ctx-height, 1);uint8_t* buffer (uint8_t*)av_malloc(buffer_size);av_image_fill_arrays(rgb_frame-data, rgb_frame-linesize, buffer,AV_PIX_FMT_RGB24, codec_ctx-width, codec_ctx-height, 1);AVPacket* pkt av_packet_alloc();cv::namedWindow(Video, cv::WINDOW_AUTOSIZE);// 主解码循环while(av_read_frame(fmt_ctx, pkt) 0) {if(pkt-stream_index video_stream) {int ret avcodec_send_packet(codec_ctx, pkt);if(ret 0) continue;while(ret 0) {ret avcodec_receive_frame(codec_ctx, frame);if(ret AVERROR(EAGAIN) || ret AVERROR_EOF) break;if(ret 0) {std::cerr 解码错误 std::endl;break;}// 转换颜色空间sws_scale(sws_ctx, frame-data, frame-linesize, 0, codec_ctx-height,rgb_frame-data, rgb_frame-linesize);// 创建OpenCV Mat并显示cv::Mat img(codec_ctx-height, codec_ctx-width,CV_8UC3, rgb_frame-data);cv::imshow(Video, img);if(cv::waitKey(25) 27) break; // ESC退出}}av_packet_unref(pkt);}// 清理资源av_free(buffer);av_frame_free(frame);av_frame_free(rgb_frame);av_packet_free(pkt);sws_freeContext(sws_ctx);avcodec_free_context(codec_ctx);avformat_close_input(fmt_ctx);cv::destroyAllWindows();return 0; }程序说明 ‌FFmpeg初始化‌ 使用avformat_open_input打开媒体文件 通过avformat_find_stream_info获取流信息 ‌视频流处理‌ 定位视频流索引 创建解码器上下文并打开 ‌颜色空间转换‌ 使用sws_getContext初始化转换上下文 将原始帧转换为RGB24格式 ‌OpenCV显示‌ 将转换后的RGB数据包装为cv::Mat 使用imshow显示视频帧 5 小结 VS2022配置FFMPEG库在使用预编译包的情况下没有特殊需要注意的按照常规的第三方库配置思路进行配置即可。
http://www.hkea.cn/news/14458124/

相关文章:

  • 珠海网站建设优化中国新闻社领导名单
  • 南海网站建设哪家好长葛做网站
  • 章丘建设网站网站基础功能
  • 做全网营销型网站建设设计网站大全图片
  • 乌海网站建设北京建站公司网站
  • 网站对固定ip转向怎么做html5手机网站开发实例
  • 青海做网站找谁源代码怎么做网站
  • 新乡网站建设方案个人网站备案名和运营
  • 网站建设优化服务市场遵义市网站建设
  • 网站的特效代码广州外贸推广
  • 网站js文件夹网站建设模板哪里下载
  • 秦皇岛pc端网站建设百度关键词关键词大全
  • 建网站的公司价格中建八局一公司总部
  • 网站集约化建设工作汇报四川外国语大学网站建设系
  • 阿里服务器怎么做网站服务器吗抖音代运营工作内容
  • 教育网站的建设男女在床上做羞羞的事的网站
  • 淘宝客网站建设任务舆情系统是什么
  • 天津小程序网站开发公司西安专业做网站建设费用
  • 做企业网站的字体大小要求免费服务器领取
  • 汕头企业做网站沈阳的网站建设
  • 星沙网站建设中国建筑装饰网网址
  • 电子商务网站建设是学什么云浮市住房城乡建设信息网网站
  • 网站的建设分析及意义谷歌seo搜索引擎下载
  • 网站开发是前端还是后台js建设网站
  • 网站长春网站建设网站搜索不出来
  • 公司注销 网站备案申请表电子商务网站怎么建设
  • 微网站建设及微信推广方案ppt模板杭州市建设网站
  • 建设网站需要客户提供什么资料小程序商城哪家好经销商
  • 做服装商城网站wordpress固定链接域名
  • 怎么做百度网站会显示图片在旁边北京商务网站建设