之前在做视频隐写相关实验时,需要频繁地使用HM编码器,每次都是手工打开HM编码,一个一个视频序列地去编码,非常的耗时费力。
后来实在受不了了,就把HM编码器多复制了几个,同时运行3~4个HM编码器一起编码。虽然可以同时得到多个ori.YUV,但还是得手工去操作,人得蹲着看,时间久了还是很累。
最近,在写博客时认识的一位学长教了一种自动化运行的方法,通过编写.bat文件(不推荐✖)或者使用python编写自动化代码(推荐✔)来实现:
1、在HM编码器的bin文件夹下,一直点进去,会有一个Release文件夹,里面会有TAppDecoder.exe和TAppEncoder.exe,这个就是你HM的两个编解码器;
(注:HM的编码模式一定要选择Release模式,不要选Debug模式!Debug模式编码速度太慢了!)
2、在python中编写编码时的自动化代码:
import os cmd = r"TAppEncoder.exe -c bitstream.cfg -c encoder_intra_main.cfg" os.system(cmd)
这样就可以通过python来调用你编写好的HM编码器了,接下来就用一些简单的循环语句,一直来编码测试序列就好咯~
3、关于解码的代码:
import os cmd = r"TAppDecoder.exe -b input.bin -o output.yuv" os.system(cmd)
4、一些其他的dos命令:
import os # 把文件从一个目录移动到另外一个目录 cmd = r"move D:data 00_depth.txt E:experimental_resultsvideo1" os.system(cmd) # 把一个目录中的所有txt文件移动到另外一个目录 cmd = r"move D:data*.txt E:experimental_resultsvideo1" # cmd = r"move D:data*.bin E:experimental_resultsvideo1" # cmd = r"move D:data*.yuv E:experimental_resultsvideo1" os.system(cmd) # 删除一个文件 cmd = r"del D:data 00_depth.txt" os.system(cmd) # 循环删除编码信息 for i in range(20): cmd = r"del D:data%03_depth.txt" % i os.system(cmd)



