amirgame197 commited on
Commit
c14239b
·
verified ·
1 Parent(s): f7cb69b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -3
app.py CHANGED
@@ -2,6 +2,7 @@ import spaces
2
  import gradio as gr
3
  import cv2
4
  import numpy as np
 
5
 
6
  from PIL import Image
7
  from transparent_background import Remover
@@ -15,7 +16,8 @@ def doo(video):
15
 
16
  writer = None
17
  frame_count = 0
18
- max_frames = 50 # Maximum number of frames to process at a time
 
19
 
20
  while cap.isOpened():
21
  ret, frame = cap.read()
@@ -27,7 +29,7 @@ def doo(video):
27
  img = Image.fromarray(frame).convert('RGB')
28
 
29
  if writer is None:
30
- writer = cv2.VideoWriter('output.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, img.size)
31
 
32
  out = remover.process(img, type='green')
33
  writer.write(cv2.cvtColor(np.array(out), cv2.COLOR_BGR2RGB))
@@ -43,11 +45,26 @@ def doo(video):
43
  cap.read() # Skip frames that have already been processed
44
  writer = None
45
  frame_count = 0
 
46
 
47
  cap.release()
48
  if writer is not None:
49
  writer.release()
50
- return 'output.mp4'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
  iface = gr.Interface(fn=doo, inputs="video", outputs="video")
53
  iface.launch()
 
2
  import gradio as gr
3
  import cv2
4
  import numpy as np
5
+ import os
6
 
7
  from PIL import Image
8
  from transparent_background import Remover
 
16
 
17
  writer = None
18
  frame_count = 0
19
+ max_frames = 400 # Maximum number of frames to process at a time
20
+ segment_count = 0 # Count of video segments processed
21
 
22
  while cap.isOpened():
23
  ret, frame = cap.read()
 
29
  img = Image.fromarray(frame).convert('RGB')
30
 
31
  if writer is None:
32
+ writer = cv2.VideoWriter(f'output_{segment_count}.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, img.size)
33
 
34
  out = remover.process(img, type='green')
35
  writer.write(cv2.cvtColor(np.array(out), cv2.COLOR_BGR2RGB))
 
45
  cap.read() # Skip frames that have already been processed
46
  writer = None
47
  frame_count = 0
48
+ segment_count += 1
49
 
50
  cap.release()
51
  if writer is not None:
52
  writer.release()
53
+
54
+ # Concatenate all the video segments
55
+ final_output = cv2.VideoWriter('final_output.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, img.size)
56
+ for i in range(segment_count):
57
+ cap = cv2.VideoCapture(f'output_{i}.mp4')
58
+ while cap.isOpened():
59
+ ret, frame = cap.read()
60
+ if ret is False:
61
+ break
62
+ final_output.write(frame)
63
+ cap.release()
64
+ os.remove(f'output_{i}.mp4') # Delete the segment file
65
+ final_output.release()
66
+
67
+ return 'final_output.mp4'
68
 
69
  iface = gr.Interface(fn=doo, inputs="video", outputs="video")
70
  iface.launch()