在Atlas 200DK上体验DVPP(1)VENC-VDEC-RESIZE-JPEGE

本文详细记录了从MP4视频文件转换为JPEG图片的完整过程,涉及视频解码(VDEC)、图像缩放(RESIZE)和编码(JPEGE)。通过ffmpeg转换MP4为H264流,然后使用DVPP的VDEC进行解码,生成YUV图片,接着调整代码实现每一帧保存为单独的H264文件,最后通过VDEC、RESIZE和JPEGE处理得到不同分辨率的JPEG图片。整个过程中,遇到并解决了文件重复、分辨率不匹配等问题。

根据进阶班作业贴:【CANN训练营2022年度第一季】【进阶班】【媒体数据处理精讲与实战】课程资源及作业发布专用帖_昇腾论坛_华为云论坛

大作业2题目如下:

开发媒体数据处理的应用,应用的输入为视频码流、输出为 JPEG 图片,且 JPEG 图片与视频的分辨率不同。

根据作业提示,转换的思路如下:

原始MP4视频=》H264/H265视频=>使用dvpp的vdec解码成yuv图片(多张)-》使用dvpp的进行resize缩放-》使用dvpp的jpege将yuv图片编码=》JPEG图片(多张)

下面看看如何实战:

一、准备MP4视频文件

先去搞个MP4过来。

张小白手头有一个:黑寡妇.2021.BD1080p.中英双字.mp4

打开格式工厂FormatFactory官网:

http://www.pcfreetime.com/formatfactory/CN/index.html

下载,安装:

耐心等待安装完毕:

点击下一步:

点击立即体验:

进入主页面:

点击->MP4

点击添加文件,选择刚才的MP4文件。

点击右上角的输出配置:

可以看到视频编码为 H264,这种格式按理说 dvpp是能解析的吧。。

由于影片长达2个多小时,只截取1分钟的片段,点击文件右边的“选项”按钮:

根据预览画面,选中 31:18到32:18之间的影像进行剪辑:

点击确定:

点击页面中的开始,进行转换:

很快就转换成功了。

打开MP4文件看看:

确实是1分钟时长。且可以播放。

那么H264格式的视频已经准备好了。我们可以试vdec,看看能不能解出成YUV吧。

二、视频解码VDEC的样例尝试

接着我们来看dvpp的vdec的文档:

昇腾社区-官网丨昇腾万里 让智能无所不及

按理说刚才做好的1分钟视频是应该支持的。到底行不行呢?

再看看具体说明:昇腾社区-官网丨昇腾万里 让智能无所不及

这个图的流程示意很清楚了,下面也有具体的解释,就不一一说明了。大概的意思是:

循环处理输入视频流,调用aclvdecSendFrame进行视频解码,然后判断是否触发回调。一直到视频流结束为止。

查看对用的sample仓代码吧:samples: CANN Samples - Gitee.com

主代码在此:

cplusplus/level2_simple_inference/0_data_process/vdec/src/main.cpp · Ascend/samples - Gitee.com

我们编译试试:

cd /home/HwHiAiUser/samples/cplusplus/level2_simple_inference/0_data_process/vdec

cd scripts

bash ./sample_build.sh

记住,现在编译的样例代码。

运行样例代码试试:

bash ./sample_run.sh

去output目录看看:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张小白TWO

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

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

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

打赏作者

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

抵扣说明:

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

余额充值