我想读取HEVC压缩视频,并提取压缩(编码)视频文件中的帧,以便从帧中提取一些信息,如运动矢量等。
谁能教我如何读取压缩的HEVC视频文件,以及如何在windows操作系统中使用matlab进行帧提取。
matlab中的VideoReader可以读取最多H.264编码的视频,但不能读取H.265/HEVC编码的视频。
我已经从http://www.elecard.com/en/download/videos.html下载了几个HEVC压缩视频,并从这个网站下载了编解码器工具包,我可以播放这些视频。
发布于 2020-07-01 23:12:47
在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因此,将在/bin文件夹中创建str.bin文件,可以使用your_config_file.cfg或命令行选项重命名该文件,软件手册中已对此进行了详细说明。此外,您还可以在/cfg文件夹中找到好的配置文件。要对str.bin进行解码,只需键入:
TAppDecoderStatic.exe -b str.bin -o dec.yuv注意,dec.yuv是解码器中解码的输出视频数据。此外,您还可以使用YUV viewer查看解码的和原始的视频序列。此外,您还可以找到一个很好的数据集here。
发布于 2014-12-31 23:25:56
AFAIK没有能够直接从MATLAB读取HEVC数据流的公共代码或库。
当遇到同样的问题时,我修改了the reference HEVC decoder,在解码HEVC视频时编写一个单独的CSV文件。然后,MATLAB可以读取CSV文件。
我借鉴了GitlHEVCAnalyzer的这种方法。参见TSysuAnalyzerOutput.cpp,作者在HEVC解码过程中编写了许多不同的文本文件。然后分析器读取文本文件。
https://stackoverflow.com/questions/27384193
复制相似问题