|
|
@@ -368,12 +368,15 @@ def yolov12_predict(params: PredictParams):
|
|
|
fps = cap.get(cv2.CAP_PROP_FPS)
|
|
|
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
|
|
|
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
|
|
|
- try_codecs = ['H264', 'mp4v', 'MJPG']
|
|
|
+ try_codecs = ['mp4v', 'MJPG', 'H264'] # 优先mp4v
|
|
|
out = None
|
|
|
+ used_codec = None
|
|
|
for codec in try_codecs:
|
|
|
fourcc = cv2.VideoWriter_fourcc(*codec)
|
|
|
out = cv2.VideoWriter(output_mp4, fourcc, fps, (width, height))
|
|
|
if out.isOpened():
|
|
|
+ used_codec = codec
|
|
|
+ logging.info(f"使用编码器 {codec} 成功写入MP4")
|
|
|
break
|
|
|
else:
|
|
|
out.release()
|
|
|
@@ -388,7 +391,7 @@ def yolov12_predict(params: PredictParams):
|
|
|
cap.release()
|
|
|
out.release()
|
|
|
os.remove(video_file)
|
|
|
- logging.info(f"使用OpenCV生成MP4: {output_mp4}")
|
|
|
+ logging.info(f"使用OpenCV生成MP4: {output_mp4},编码器: {used_codec}")
|
|
|
except Exception as cv_error:
|
|
|
logging.error(f"OpenCV处理失败: {cv_error}")
|
|
|
|