0

我正在尝试为视频文件添加噪音。目标是在视频中引入噪音然后保存。

目前的做法:

  • 迭代视频的帧。
  • 为每一帧添加噪点,然后保存。# 添加来自 skimage 的高斯噪声
  • 最后,合并帧并保存视频

伪代码

cam = cv2.VideoCapture(clip_file_path)
while frame < end:
   ret_val, input_image = cam.read()
   input_image = cv2.cvtColor(input_image, cv2.COLOR_BGR2RGB)
   noisy_img = add_noise(input_image, mode) # Adding gaussian noise from skimage
   save_frame()

合并帧

frame_rate = 30
codec = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_video_path, codec, frame_rate, (width, height))
for frame in range(starting_frame, ending_frame):
    image = cv2.imread(frame_path_template.format(frame_path=full_extracted_frames_path, pid=pid,
                                                  exercise_type=exercise_type,
                                                  frame_number=frame))
    out.write(image)
out.release()
cv2.destroyAllWindows()

这些是获得的文件大小:

  • 原始视频文件:1.5 MB
  • 合并后得到的视频:53.7 MB
  • 使用压缩后获得的视频:39.6 MB ffmpeg -i P33_R.mp4 -vcodec libx264 output1.mp4
  • 使用压缩和 crf 28 后获得的视频:16.2 MB ffmpeg -i P33_R.mp4 -vcodec libx264 -crf 28 output1.mp4

我希望最终文件的大小与原始文件相同。真的可以这样做吗?

4

0 回答 0