建站免费建站平台,wordpress docker -v,别墅效果图制作,手机wordpress主题如下图所示#xff0c;是本人开发的一个转码转封装小工具
其中目标文件视频编码格式支持#xff1a;H264#xff0c;H265#xff0c;VP8#xff0c;VP9。 目标文件封装格式支持#xff1a;mp4,mkv,avi,mov,flv。 目标文件音频编码格式支持两个#xff0c;COPY和AAC是本人开发的一个转码转封装小工具
其中目标文件视频编码格式支持H264H265VP8VP9。 目标文件封装格式支持mp4,mkv,avi,mov,flv。 目标文件音频编码格式支持两个COPY和AACCOPY就是原样复用音频即-avcodec copy。AAC就是转码成AAC格式。 该工具支持只有一个视频通道的文件和只有一路视频一路音频的文件这两种情况。
该工具通过vs2017qt5.9.6编写其中ffmpeg依赖的库有libx264,libx265,vpx,opus,fontconfig,freetype,ass。 这里面有个视频帧数量统计用于控制进度比如总的视频帧数是3000现在处理了300帧。则进度显示10%。
在此说明下本人并没有通过下列方式获取视频帧数量
m_iVideoFrameNum m_pFormatCtx_File-streams[m_iVideoIndex]-nb_frames;这种方式不准原因有二 1.对于mkv封装格式而言该数量读取的数量为0 2.对于mp4封装格式而言假设读到的nb_frames数量为1200则最终只可能成功解码1199帧有一帧未能成功解码ffprobe工具读到的也是1199帧这里读者可以参考我写的博客ffmpeg关于AVStream中nb_frames变量数目不正确的问题分析
所以对于图片数量本人参考了ffprobe的源码只有成功解码出视频帧的才会计算在内这块的代码实现位于函数GetVideoFrameCount内。
本人的成果物目录如下 这里面总共有4个音视频文件其中 1.39a8432afe2f70be3c0c2c951d63b868.mp4是只有视频没有音频的文件h264编码格式。
2.2022-01-08T22-32-58.mp4既有视频也有音频为1080P的分辨率h264编码格式。
3.TAEYEON-Weekend.mkv既有视频也有音频为4K分辨率VP9视频编码格式OPUS音频编码格式。
4.2022-01-08T22-32-58.mp4_2023_02_11T15_55_37_H265是由2022-01-08T22-32-58.mp4转码为H265生成的文件这个需要读者自己生成。
成果物里面有个配置文件FFmpegConvert.ini内容如下 其中open_consoletrue表示打开控制台。 如下所示如果目标的视频编码格式设置为VP9封装格式为flv则控制台会显示报错信息,flv封装格式不支持VP9编码。
工程文件结构如下注意是64位编译。
里面在视频处理的时候添加了一个box的滤镜如下所示读者可以将其用null滤镜替代就不会有box了。
最后本人将成果物上传到百度网盘地址如下 链接https://pan.baidu.com/s/163UKMnHJ1WC-8pKXhBcJtg?pwd1234 提取码1234