windows下C++视频加工处理,批量生成视频文件

一段将多张图片生成AVI视频的C++源码 将做工程过程较好的代码段备份一下,下面的代码段是关于一段将多张图片生成AVI视频的C++的代码,应该能对各朋友有一些帮助。 #pragma once #include <vfw.h> #pragma comment(lib,“Vfw32.lib”) class ImageToAVI : public base::_class{ protected: PAVIFILE _file; PAVISTREAM _aviStream, _aviCompressed; int 阅读详情

最近公司项目测试阶段需要测试数据源,主要是将一个视频文件(标准H264)通过修改分辨率,添加水印,设置自定义GOP,设置profile格式为baseline,将视频中的B帧去除掉,只留下I帧和P帧,最后将文件中的ES流提取出来生成三千个不同的文件。我主要是将文件按照指定的IP区间添加不同的水印,文件名称按照IP区间来定义

命令行:

修改视屏分辨率:
ffmpeg -i input -vf scale=iw/2:-2 output
视屏添加字幕:(srt文件方式)
ffmpeg.exe -i test.avi -vf subtitles=test.srt out.avi
添加文字水印
ffmpeg.exe -i h264Test.mp4 -vf "drawtext=fontfile=arial.ttf:text='27.8-SD':x=1:y=1:fontsize=50:fontcolor=yellow:shadowy=2" drawtext.mp4

 

设置baseline:
ffmpeg.exe -i 1231.mp4 -vcodec libx264 -x264opts keyint=10:min-keyint=10 -an -profile:v baseline -level 3.0 WLL.mp4

 

提取ES流
ffmpeg.exe -i WLL.mp4 -vcodec copy -f rawvideo -vbsf h264_mp4toannexb final.raw

代码实现: 

        CString strDestPath, tmpPath, DestFileName("\\Check_");
	int pos = strSrcFile.ReverseFind('\\');

	strDestPath = strSrcFile.Mid(0, pos);
	tmpPath = strSrcFile.Mid(0, pos);
	DestFileName += strSrcFile.Mid(pos+1);
	strDestPath += DestFileName;
	CString Suffix;
	Suffix = DestFileName.Mid(DestFileName.Find("."));

	//修改分辨率大小为320*240
	param = " -i " + strSrcFile + " -vf scale=320:240 -t 60 " + strDestPath;
	ShellExe(param);
                CString temp,Mark,base;
		temp.Format("%d%s", i, Suffix);
		if (Sufix.IsEmpty())
			Mark.Format("%s.%d", basenum, i);
		else
			Mark.Format("%s.%d_%s", basenum, i, Sufix);
		basenum += temp;

		//添加水印
		param = " -i "+  strDestPath + "  -vf \"drawtext=fontfile=arial.ttf:text = '" + Mark +"':x=1:y=1:fontsize=50:fontcolor=yellow:shadowy=2\" " + tmpPath + "\\" + basenum;
		ShellExe(param);

 

                //将视频转换成baseline模式,并且将GOP设置为10
                CString baseline = "baseline_";
		baseline += basenum;

		param = " -i " + tmpPath + "\\" + basenum + " -vcodec libx264 -x264opts keyint=10:min-keyint=10 -an -profile:v baseline -level 3.0 " + tmpPath + "\\" + baseline;
		ShellExe(param);
//提取ES流
		CString fileName = basenum.Left(basenum.Find("."));
		if (Sufix.IsEmpty())
		{
			fileName += ".raw";
		}
		else
		{
			fileName += "-";
			fileName += Sufix;
			fileName += ".raw";
		}
		param = " -i "+ tmpPath + "\\" + baseline + " -vcodec copy -f rawvideo -vbsf h264_mp4toannexb " + tmpPath + "\\" + fileName;
		ShellExe(param);

 源工程文件可以在这里下载

 

利用opencv捕获usb摄像头并写入视频文件 对于搞视频监控的朋友来说,视频文件的写入,几乎是必须的一个步骤。这里,我给出一个视频文件写入的例子。首先是利用opencv进行USB相机的视频捕获,然后,将视频帧写入到视频文件当中。在进行视频文件的写入之前,有两点需要提醒: (1)opencv只是一个图像处理的工具库,并不是视 阅读详情

相关推荐

【opencv-c++】读取视频文件或者直播码流

VS2022MicrosoftVisualStudioCommunity2022(64位)-版本17.2.6。get_video.cpp文本使用VideoCapture类捕获网络码流或者读取本地视频文件。系统Windows10专业版,版本号21H2,操作系统内部版本19044.1826;

jn10010537的博客 1129

响应式疑惑? CSS单位研究

各种单位要搞清楚,自己试一试,实践出真知! 2.屏幕分辨率 响应式 哦,电脑的分辨率:1440x900表示水平有1440个像素点哦! 垂直有900个像素点。 而网页在浏览器中,所以宽度是电脑的分辨率 — 浏览器的侧边框哦! 同样,网页的宽度是电脑的分辨率 — 浏览器上下边框哦! 3.手机分辨率: 我的手机:1280x...

weixin_34259159的博客 366

C++视屏加工处理-基于FFmpeg

主要是将一个视频文件(标准H264)通过修改分辨率,添加水印,设置自定义GOP,设置profile格式为baseline,将视频中的B帧去除掉,只留下I帧和P帧,最后将文件中的ES流提取出来生成三千个不同的文件。我主要是将文件按照指定的IP区间添加不同的水印,文件名称按照IP区间来定义

图片合成视频C++

#include <iostream> #include <opencv2\opencv.hpp> using namespace std; using namespace cv; void Image_To_Video(); int main() { Image_To_Video(); waitKey(0); return 0; } void Image_To_Video() { char image_name[80]; VideoWriter writer;

yanzhiwen2的博客 2229

ADS 2023 实战:手把手教你仿真一个中心频率 2.4GHz 的带通滤波器(附工程文件)

本文详细介绍了使用ADS 2023软件设计和仿真中心频率2.4GHz带通滤波器的全流程,包括工程准备、指标定义、原理图设计、仿真优化及实际电路实现。通过切比雪夫滤波器拓扑和参数优化,实现高性能的带通滤波器设计,适用于无线通信系统。附有工程文件和常见问题解决方案,助力工程师快速掌握射频滤波器设计技巧。

weixin_30790841的博客 482

告别PXE!用iPXE在CentOS 8.5上搭建一个能同时装Win11和Linux的万能网络启动盘

本文详细介绍了如何在CentOS 8.5上使用iPXE搭建支持Windows 11和Linux双系统部署的全能网络启动盘。通过对比传统PXE的局限性,展示了iPXE在HTTP协议支持、多架构适配和智能脚本方面的优势,提供从环境准备、服务配置到智能菜单开发的完整解决方案,显著提升系统部署效率。

weixin_29278805的博客 266

C++OPencv视频文件处理使用

C++OPencv视频文件处理使用

qq_45373844的博客 1497

你不必懂AI,但必须会用AI:写给所有焦虑中的职场人

AI时代不必焦虑学技术,关键在于用AI解决实际问题。文章指出,99%的人只需成为AI使用者而非建造者,核心竞争力在于结合业务痛点运用AI工具提升效率。与其盲目学习工具,不如梳理工作流程,识别可优化环节,让AI赋能重复性、标准化任务。行业经验与AI工具的结合才是真正的职场护城河。建议从具体工作场景出发,寻找匹配的AI解决方案,迈出应用第一步。

hundred98的博客 718

【C++】ffmpeg将png/jpg图片序列转成mp4/avi

20190715更新 该方法没有对视频帧进行编码压缩,生成的视频很大,而且不能在windows自带的播放器上播放。 后来在网上找到了一段代码,修改之后满足了自己的需求,封装成了一个类,可以将png\jpg格式的图片合成为mp4或者avi格式的视频,其中因为读取硬盘图片用的是自己的一个库(主要用到的功能是:读取图片数据区,对图片进行格式转换),这一部分可以根据大家自己手上已有的代码资源进行替代...

u013094443的博客 1万+

zblog mysql数据库无法连接_ZBlog博客网站错误:MySQL数据库无法连接

前言前天搭建的博客网站,睡醒一觉起来网站挂逼了,其间无任何操作。主页都进不去,提示“MySQL数据库无法连接”,无论怎么刷新重启服务器都没用。最终从中午1点搞到凌晨2点,皇天不负有心人终于解决了。其实问题很简单,只是没这方面的经验,走了很多弯路。我本人并不是搞WEB的,搞这个博客纯碎就是玩玩罢了。处理这个问题的时候查了很久的资料,都是一些没太大意义的,无非就是让你改zb_user/c_option...

weixin_34691461的博客 2205

SAP采购信息记录批量维护实战:用BAPI ME_INFORECORD_MAINTAIN搞定价格等级和条件记录

本文深入解析SAP标准BAPI ME_INFORECORD_MAINTAIN在采购信息记录批量维护中的应用,特别聚焦价格等级和条件记录的技术难点。通过实战案例和代码示例,帮助用户高效处理供应商-物料价格数据,提升供应链管理效率。

weixin_42522320的博客 412

免费视频字幕处理神器:5分钟学会批量生成和翻译字幕

想要为视频快速添加字幕并翻译成其他语言吗?今天为大家介绍一款功能强大的视频字幕处理工具,它能够批量为视频生成字幕,并支持多种语言的翻译功能。这款跨平台工具支持 Windows 和 macOS 系统,操作简单,效果专业。 ## 软件核心功能一览 video-subtitle-master 是一款基于 whisper.cpp 语音识别技术的桌面应用程序,主要功能包括: - **批量处理视频文件*

gitblog_00976的博客 1002

全网最全-DA14531-全球最小-BLE从入门到精通开发教程

本教程主要适用于低功耗产品,DA14531它体积小,非常适用于对体积敏感的设备,如无线可穿戴、传感器、助听器等设备。本文经过作者发大量时间来记录开发项目的调试方法,里面有许多笔者开发心得体会,旨在让读者工程师快速上手,减少摸索时间,提高软件质量。读者对象本文档主要适用以下工程师:嵌入式系统工程师单片机软件工程师IOT固件工程师BLE固件工程师。

hejinwu1314的博客 5138

Whisper.cpp本地化:Windows端部署详解与实操

本篇博客将介绍如何使用Whisper.cpp工具来为 Windows 上的视频文件生成字幕。

weixin_52318459的博客 6386

全网首发--Unet3+改进16:在不同位置添加RepLKBlock超大卷积核

本文提出了一种基于大核卷积的神经网络架构RepLKNet,旨在缩小CNN与ViTs之间的性能差距。通过重新审视CNN中的大核设计,研究证明使用少量大卷积核替代多个小核能获得更强大的性能。提出的RepLKNet采用31×31大卷积核,在ImageNet和下游任务上取得了与SwinTransformer相当或更好的结果,同时具有更低延迟。文章详细介绍了实现步骤:(1)创建RepLKBlock模块文件;(2)在模型层中添加注意力机制;(3)在UNet模型中集成RepLKBlock;(4)完成训练流程。该方法展现了

AIcurator的博客 627

Lumerical 教程,包含作者个人理解及相关设计案例 (目前共计184篇,持续更新中)

4138。

u011699626的博客 1630

VideoSubtitleGenerator终极指南:如何快速为本地视频批量生成多语言字幕

VideoSubtitleGenerator是一款专为本地视频设计的智能字幕生成工具,能够批量处理视频文件并自动翻译成多种语言,无需上传视频到云端,完美保护用户隐私的同时提供高效的字幕制作体验。 ## ✨ 为什么你需要这款本地字幕生成工具? 在日常学习和工作中,你是否经常遇到没有字幕的外文视频?手动添加字幕不仅耗时耗力,而且翻译质量难以保证。传统的在线字幕生成工具需要上传视频,效率低下且存在隐

gitblog_00121的博客 693

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

3分钟掌握:如何用VideoSubtitleGenerator为本地视频批量生成多语言字幕

还在为外文视频没有字幕而烦恼吗?VideoSubtitleGenerator是一款强大的本地视频字幕生成工具,它能够在3分钟内帮你为视频批量创建字幕并翻译成多种语言,完全保护你的隐私安全,无需上传任何视频文件到云端。 ## 🔥 痛点:为什么你需要这款视频字幕生成工具? 想象一下这些场景: - 你下载了一部精彩的英文教学视频,但没有字幕,理解起来很吃力 - 你需要为多个视频添加中文字幕,但手动

gitblog_00755的博客 967

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Win10系统,用C++调用OpenCV接口,播放本地视频文件,播放本地和网络摄像头

本篇介绍在WIN10种,用C++如何调用OpenCV接口,打开和播放本地视频文件,打开本地、网络摄像头并播放视频。

Bruce Che 的专栏 5775

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LEADTOOLS 将过滤器应用于视频文件 - Windows C++

本教程介绍如何将视频处理过滤器应用于媒体文件,并使用 LEADTOOLS 多媒体 SDK 在 Windows C DLL 应用程序中执行播放。

控件与插件之大全 818

终极视频修复指南:如何用Untrunc拯救你损坏的珍贵视频文件

你是否曾经遇到过这样的情况?珍贵的家庭聚会视频、重要的会议录像或者旅行纪念片段突然无法播放了,文件显示损坏或截断。这些数字记忆对我们来说意义非凡,但技术问题却让它们变得无法访问。别担心,今天我要介绍一款强大的开源视频修复工具——Untrunc,它能帮助你恢复损坏的mp4、m4v、mov和3gp视频文件,让你的珍贵影像记忆重现光彩。 ## 📽️ 视频损坏的常见场景 视频文件损坏可能发生在各种情

gitblog_00018的博客 755

LEADTOOLS 多媒体SDK将过滤器评估视频文件 - Windows C++

本教程介绍如何将视频处理过滤器应用于媒体文件,并使用 LEADTOOLS 多媒体 SDK 在 Windows C DLL 应用程序中执行播放。

控件与插件之大全 654

java web 自己开发NAS个人网盘、视频网站视频播放服务端大视频文件处理逻辑解决方案和思路

说一下我的需求,我个人的需求是这样的,我自己想搞一个个人网盘来保存我的各种资料和视频,但是又要方便直接在硬盘操作,就是轻量级实现,一个简单的NGINX是不符合我的需求的,功能太过简单了,而市面上的开源的很多都太过重量级实现。 所以我实现的主要需求是个人NAS系统视频播放 这里提一下,我是H5网页播放。前端我就不说了,H5的播放器,解决方案太多了,不值得去写,主要是服务端的视频处理方案。 我最...

San_xiu的博客 5494

获取网页视频文件

方法很多,这里说一个比较简单的方法:you-get安装 python;pip install you-get获取视频:如,某视频网站: https://www.video.com/video/VideoP=011: 这个表示 视频的 网页, 01 表示 这个视频的 第一集;2: you-get -i https://www.video.com/video/VideoP=01 这里会显示当前视频的 format:mp4hd 等等好几条;3: you-get --format=mp4hd

chinabinlang的专栏 1245

SaltStack etcd state 模块实战指南:用 Salt State 管理 etcd 键值

Salt 的 `salt.states.etcd_mod` 状态模块([源码](https://link.gitcode.com/i/163665084c9a36490b2f22e02223033a))为管理 etcd 中的键值对提供了声明式的 State 接口,支持设置、删除键值以及基于 `watch` 要件(requisite)的联动触发。本文以该模块的官方文档([doc/ref/states

gitblog_00190的博客 1076

视频文件按帧抓取图像并保存

一.原材料:        win10,opencv3.0,vs2013,test.MP4。只需要配置好opencv的环境就好,3.0可以直接用MP4类型的视频数据。 二.实现功能:       1.显示视频的具体信息,帧数,帧率,分辨率等;       2.对视频进行逐帧抓取图像;       3.对图像尺寸进行变换--缩放,我电脑是AMD显卡无gpu加速,只能缩小图像,减少以后的训练

wangbo792450190的博客 5494
上一篇: 'wchar_t *' to 'const char *'
下一篇: windows 10 /windows server 2016 /windows server 2019下安装WSL(windows下Linux子系统)
RuningPigNO1
博客等级 码龄10年 22粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RuningPigNO1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值