【问题标题】:Read HEVC frames using matlab使用 matlab 读取 HEVC 帧
【发布时间】:2014-12-09 16:43:06
【问题描述】:
我想读取 HEVC 压缩视频并提取压缩(编码)视频文件中的帧,以从帧中提取一些信息,如运动矢量等。
谁能帮助我如何读取压缩的 HEVC 视频文件,以及如何在 windows 操作系统中使用 matlab 提取帧。
matlab 中的 VideoReader 最多可以读取 H.264 编码的视频,但不能读取 H.265/HEVC 编码的视频。
我从http://www.elecard.com/en/download/videos.html下载了几个HEVC压缩视频,并从这个网站下载了编解码器工具包,我可以播放这些视频。
【问题讨论】:
标签:
matlab
dns
compression
frames
hevc
【解决方案1】:
MATLAB 中的 HEVC/H.265 编解码器没有正式发布,因为 HEVC 不是免版税软件,这也是科技巨头制作替代视频编码而不收取任何许可费的原因。因此,HEVC 目前主要用于当今的科学文献中。
但是,您可以使用this link 中提供的 HM 参考软件在 HEVC 中对 YUV 格式的视频数据进行编码/解码。要进行编码,您需要在 Windows 计算机上安装 Visual Studio。首先,打开命令提示符并输入:
msbuild /p:Configuration=Release HM_vc2015.sln
构建项目后,您可以在 /bin 文件夹中找到一些文件。然后,您应该使用 cd 命令将当前目录更改为 /bin 文件夹并输入:
TAppEncoderStatic.exe -c your_config_file.cfg -i your_video_data.yuv
因此,str.bin 文件将在 /bin 文件夹中创建,可以使用 your_config_file.cfg 或命令行选项重命名,这在软件手册中有详细说明。此外,您可以在 /cfg 文件夹中找到好的配置文件。要解码 str.bin,只需键入:
TAppDecoderStatic.exe -b str.bin -o dec.yuv
注意dec.yuv是解码器中解码后的输出视频数据。此外,您可以使用YUV viewer 查看解码后的原始视频序列。此外,你可以找到一个很好的数据集here。