def encode_one_yuv(exe_path, one_yuv, usage_type=0, qp=24): name = ((one_yuv.split(os.sep))[-1]) width, height, frame_rate = __init__.get_resolution_from_name(name) if frame_rate == 0: frame_rate = 30 # encoding current_path = os.getcwd() os.chdir(exe_path) print("current path is %s\n" %exe_path) if not SKIP_ENCODING: if TEST_JM: bs_name, log_name = CodecUtil.jm_encoder(one_yuv, usage_type, width, height, qp, ' -p IDRPeriod=1 -p LevelIDC=51 ') else: bs_name, log_name, result_line = CodecUtil.openh264_encoder_qp(one_yuv, usage_type, width, height, qp, ' -iper 0 ') else: bs_name = one_yuv.split(os.sep)[-1] + '_br' + str(qp) + '.264' log_name = one_yuv.split(os.sep)[-1] + '_br' + str(qp) + '.log' #deal with log file fps = CodecUtil.openh264_encoder_log_fps(log_name) if not PERFORMANCE_ONLY: # decoding rec_yuv = bs_name+'_dec.yuv' if TEST_JM: CodecUtil.jm_decode(bs_name, rec_yuv) else: CodecUtil.decode(bs_name, rec_yuv) # psnr ing frame_num, bitrate, psnr_y, psnr_u, psnr_v = CodecUtil.PSNRStaticd(width, height, one_yuv, rec_yuv, rec_yuv+'.log', bs_name, frame_rate) ssim, msssim = 0,0 if VQMT_ON: psnr2, ssim, msssim = CodecUtil.Vqmt(width, height, one_yuv, rec_yuv, frame_num) file_size = os.path.getsize(bs_name) current_test_point = OneTestPoint(width, height, frame_rate, frame_num, qp, file_size, 0, fps, bitrate, psnr_y, psnr_u, psnr_v, ssim, msssim) os.remove(rec_yuv) else: current_test_point = OneTestPoint(width, height, frame_rate, 0, qp, 0, 0, fps, 0, 0, 0, 0, 0, 0) if DEBUG==0: os.remove(bs_name) os.remove(log_name) os.chdir(current_path) return current_test_point
#!/usr/bin/env python import os, glob import argparse import CodecUtil import config if __name__ == '__main__': #set you search path in config.py argParser = argparse.ArgumentParser() argParser.add_argument("folder", nargs='?', help="log file") args = argParser.parse_args() if not os.path.isdir(args.folder): exit() for file in glob.glob(args.folder + os.sep + '*.264'): CodecUtil.jm_decode(file)