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

架设网站 软件小企业网站建设怎么做好

架设网站 软件,小企业网站建设怎么做好,烟台 网站建设,百度学术论文查重官网入口有时候#xff0c;我们需要给视频添加文字或水印#xff0c;用已有的工具当然最简单#xff0c;但想在自己的应用中#xff0c;如C应用程序中来实现#xff0c;如何实现呢#xff1f; 假设采用FFmpeg库#xff0c;可通过C二次开发调用实现。当然这个过程还是比较复杂的…有时候我们需要给视频添加文字或水印用已有的工具当然最简单但想在自己的应用中如C应用程序中来实现如何实现呢 假设采用FFmpeg库可通过C二次开发调用实现。当然这个过程还是比较复杂的需要有一定的多媒体编程能力并使用FFmpeg的多媒体处理功能。可按以下步骤 1、安装FFmpeg 首先确保你的系统上已经安装了FFmpeg。你可以从FFmpeg官方网站下载二进制文件或者使用包管理器进行安装。 2、包含FFmpeg头文件 在你的C程序中包含FFmpeg的头文件以便你可以调用其功能。例 extern C {#include libavformat/avformat.h#include libavutil/opt.h } } 3、初始化FFmpeg 在程序开始时初始化FFmpeg库   av_register_all();avformat_network_init(); 4、打开视频文件 使用avformat_open_input打开视频文件并调用avformat_find_stream_info以获取流信息。 5、查找视频流 遍历流以找到视频流。 6、打开解码器 创建一个视频解码器上下文并打开解码器。 7、创建水印 创建水印的图像通常是一个带有文字的图像。 8、解码和渲染 使用解码器解码每个视频帧然后将水印叠加到帧上。 9、播放视频 将处理后的帧显示在屏幕上或者保存为新的视频文件。 10、释放资源 在程序结束时释放FFmpeg资源包括解码器、上下文等。 以下是具体的例子需要根据具体的需求修改。 #include iostream extern C {#include libavformat/avformat.h #include libavutil/opt.h #include libavutil/imgutils.h #include libswscale/swscale.h } }int main(int argc, char* argv[]) {av_register_all();avformat_network_init();AVFormatContext* pFormatCtx avformat_alloc_context();if (avformat_open_input(pFormatCtx, input.mp4, NULL, NULL) ! 0) {std::cerr Failed to open input file. std::endl;return -1;}if (avformat_find_stream_info(pFormatCtx, NULL) 0) {std::cerr Failed to find stream information. std::endl;return -1;}int videoStream -1;for (int i 0; i pFormatCtx-nb_streams; i) {if (pFormatCtx-streams[i]-codecpar-codec_type AVMEDIA_TYPE_VIDEO) {videoStream i;break;}}if (videoStream -1) {std::cerr No video stream found. std::endl;return -1;}AVCodecParameters* pCodecParams pFormatCtx-streams[videoStream]-codecpar;AVCodec* pCodec avcodec_find_decoder(pCodecParams-codec_id);AVCodecContext* pCodecCtx avcodec_alloc_context3(pCodec);avcodec_parameters_to_context(pCodecCtx, pCodecParams);avcodec_open2(pCodecCtx, pCodec, NULL);AVPacket packet;AVFrame* pFrame av_frame_alloc();AVFrame* pFrameRGB av_frame_alloc();uint8_t* buffer;int numBytes;numBytes av_image_get_buffer_size(AV_PIX_FMT_RGB24, pCodecCtx-width, pCodecCtx-height, 1);buffer (uint8_t*)av_malloc(numBytes * sizeof(uint8_t));av_image_fill_arrays(pFrameRGB-data, pFrameRGB-linesize, buffer, AV_PIX_FMT_RGB24, pCodecCtx-width, pCodecCtx-height, 1);struct SwsContext* sws_ctx sws_getContext(pCodecCtx-width, pCodecCtx-height, pCodecCtx-pix_fmt, pCodecCtx-width, pCodecCtx-height, AV_PIX_FMT_RGB24, SWS_BILINEAR, NULL, NULL, NULL);while (av_read_frame(pFormatCtx, packet) 0) {if (packet.stream_index videoStream) {avcodec_send_packet(pCodecCtx, packet);avcodec_receive_frame(pCodecCtx, pFrame);// Add text watermark heresws_scale(sws_ctx, (uint8_t const* const*)pFrame-data, pFrame-linesize, 0, pCodecCtx-height, pFrameRGB-data, pFrameRGB-linesize);// Render the frame here or save it as a new videoav_packet_unref(packet);}}av_frame_free(pFrame);av_frame_free(pFrameRGB);avcodec_close(pCodecCtx);avformat_close_input(pFormatCtx);return 0; } } FFmpeg的使用和水印添加相对还是比较复杂的需要不断的学习和实践可以查阅FFmpeg的官方文档和示例来深入了解。在实际应用中需要添加更多的错误处理和功能来满足需求。
http://www.zqtcl.cn/news/408154/

相关文章:

  • ps做汽车网站下载网络推广专员招聘
  • 荥阳网站开发WordPress 采集文章 图片
  • 网站域名登记证明文件音乐网站开发需要什么语言工具
  • 贵州域网网站建设东莞做外贸网站的公司
  • ps怎么做华为网站界面怎样做网站步骤
  • 免费做试卷的网站或试卷seo 培训教程
  • 创意网站建设价格多少最新新闻热点事件2022年8月
  • wordpress用户登录界面插件重庆网站排名优化公司
  • 网站整体建设方案设计wordpress 插件升级慢
  • 淄博网站制作升级优化青岛品牌网站建设价格
  • 网站后台管理系统模块星星wordpress模板
  • 网站统计 中文域名优化英语
  • 自己做视频的网站吗怎么建设维护学校的网站
  • 广州网站建设好公司鲁权屯网站建设
  • 网站多数关键词网站使用mip后效果怎么样
  • 如何介绍自己做的网站建设三库一平台
  • 郑州网站商城建设iframe 一直网站底部
  • 1688网站怎么样百度一下你知道
  • 做电商图的设计网站蚌埠网页设计培训
  • 江苏省建设工程质量监督站网站手机网站 案例
  • 优而思 网站科技自立自强是国家强盛之基
  • 去哪里购买网站空间专门做家居的网站
  • 网站信息安全建设方案公众号网站建设
  • 网站的设计方案淘宝大数据查询平台
  • 深圳营销型网站建设 龙华信科网站项目有需要什么技术支持
  • 开源网站模板cms网店推广实训总结
  • 常见的电子商务网站有哪些建设校园门户网站信息意义
  • 象山经济开发区建设有限公司网站足球比赛直播app
  • 国外做mg动画的网站大全网站打不开 别的电脑能打开
  • 手机怎么创网站西宁企业做网站