Spaces:
Running
on
L40S
Running
on
L40S
Update app.py
Browse files
app.py
CHANGED
@@ -125,12 +125,33 @@ def run_xportrait(source_image, driving_video, seed, uc_scale, best_frame, out_f
|
|
125 |
video_files = glob.glob(os.path.join(output_dir, "*.mp4"))
|
126 |
print(video_files)
|
127 |
if video_files:
|
128 |
-
|
|
|
129 |
else:
|
130 |
return "No video file was found in the output directory.", None
|
131 |
except subprocess.CalledProcessError as e:
|
132 |
return f"An error occurred: {e}", None
|
133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
|
135 |
# Set up Gradio interface
|
136 |
css="""
|
|
|
125 |
video_files = glob.glob(os.path.join(output_dir, "*.mp4"))
|
126 |
print(video_files)
|
127 |
if video_files:
|
128 |
+
final_vid = convert_video_to_h264_aac(video_files[0])
|
129 |
+
return f"Output video saved at: {final_vid}", final_vid
|
130 |
else:
|
131 |
return "No video file was found in the output directory.", None
|
132 |
except subprocess.CalledProcessError as e:
|
133 |
return f"An error occurred: {e}", None
|
134 |
|
135 |
+
def convert_video_to_h264_aac(video_path):
|
136 |
+
# Get the directory and original filename
|
137 |
+
original_dir = os.path.dirname(video_path)
|
138 |
+
original_name, _ = os.path.splitext(os.path.basename(video_path))
|
139 |
+
|
140 |
+
# Define the output path in the same directory
|
141 |
+
output_path = os.path.join(original_dir, f"{original_name}_converted.mp4")
|
142 |
+
|
143 |
+
# Load the video
|
144 |
+
with VideoFileClip(video_path) as video:
|
145 |
+
# Write the video with H.264 and AAC codecs
|
146 |
+
video.write_videofile(
|
147 |
+
output_path,
|
148 |
+
codec="libx264", # H.264 video codec
|
149 |
+
audio_codec="aac", # AAC audio codec
|
150 |
+
temp_audiofile="temp-audio.m4a", # Temporary audio file (moviepy requirement)
|
151 |
+
remove_temp=True # Remove temporary files after writing
|
152 |
+
)
|
153 |
+
|
154 |
+
return output_path
|
155 |
|
156 |
# Set up Gradio interface
|
157 |
css="""
|