chore:updating autoplay
Browse files- app.py +9 -9
- render_final.py +4 -3
app.py
CHANGED
|
@@ -36,8 +36,8 @@ def run_render_final(npy_file_path):
|
|
| 36 |
command = ["python", "render_final.py", npy_file_path]
|
| 37 |
try:
|
| 38 |
gif_res = subprocess.run(command, check=True, text=True, capture_output=True)
|
| 39 |
-
|
| 40 |
-
return
|
| 41 |
except subprocess.CalledProcessError as e:
|
| 42 |
st.error(f"Error: {e.stderr}")
|
| 43 |
return None
|
|
@@ -113,10 +113,10 @@ with button_col1:
|
|
| 113 |
with button_col2:
|
| 114 |
if st.button("Render Skeleton"):
|
| 115 |
if 'npy_file_path' in st.session_state and st.session_state.npy_file_path:
|
| 116 |
-
|
| 117 |
-
if
|
| 118 |
-
st.session_state.
|
| 119 |
-
st.session_state.gif_base64 = gif_to_base64(gif_file_path)
|
| 120 |
else:
|
| 121 |
st.error("No npy file found. Please generate HTML first.")
|
| 122 |
|
|
@@ -124,7 +124,7 @@ with button_col2:
|
|
| 124 |
# Display the results side by side using HTML components
|
| 125 |
if 'html_content' in st.session_state or 'gif_base64' in st.session_state:
|
| 126 |
html_content = st.session_state.html_content if 'html_content' in st.session_state else ""
|
| 127 |
-
|
| 128 |
|
| 129 |
disp_col1, disp_col2 = st.columns([1, 1])
|
| 130 |
|
|
@@ -132,6 +132,6 @@ if 'html_content' in st.session_state or 'gif_base64' in st.session_state:
|
|
| 132 |
components.html(html_content, height=800, scrolling=True)
|
| 133 |
|
| 134 |
with disp_col2:
|
| 135 |
-
if
|
| 136 |
-
gif_html = f'<
|
| 137 |
components.html(gif_html, height=800, scrolling=True)
|
|
|
|
| 36 |
command = ["python", "render_final.py", npy_file_path]
|
| 37 |
try:
|
| 38 |
gif_res = subprocess.run(command, check=True, text=True, capture_output=True)
|
| 39 |
+
vid_file_path = find_latest_file('output', 'mp4')
|
| 40 |
+
return vid_file_path
|
| 41 |
except subprocess.CalledProcessError as e:
|
| 42 |
st.error(f"Error: {e.stderr}")
|
| 43 |
return None
|
|
|
|
| 113 |
with button_col2:
|
| 114 |
if st.button("Render Skeleton"):
|
| 115 |
if 'npy_file_path' in st.session_state and st.session_state.npy_file_path:
|
| 116 |
+
vid_file_path = run_render_final(st.session_state.npy_file_path)
|
| 117 |
+
if vid_file_path:
|
| 118 |
+
st.session_state.vid_file_path = vid_file_path
|
| 119 |
+
# st.session_state.gif_base64 = gif_to_base64(gif_file_path)
|
| 120 |
else:
|
| 121 |
st.error("No npy file found. Please generate HTML first.")
|
| 122 |
|
|
|
|
| 124 |
# Display the results side by side using HTML components
|
| 125 |
if 'html_content' in st.session_state or 'gif_base64' in st.session_state:
|
| 126 |
html_content = st.session_state.html_content if 'html_content' in st.session_state else ""
|
| 127 |
+
video_path = st.session_state.vid_file_path if 'vid_file_path' in st.session_state else ""
|
| 128 |
|
| 129 |
disp_col1, disp_col2 = st.columns([1, 1])
|
| 130 |
|
|
|
|
| 132 |
components.html(html_content, height=800, scrolling=True)
|
| 133 |
|
| 134 |
with disp_col2:
|
| 135 |
+
if video_path:
|
| 136 |
+
gif_html = f'<video controls width="800" height="800"><source src="file:///{video_path}" type="video/mp4"></video autoplay>'
|
| 137 |
components.html(gif_html, height=800, scrolling=True)
|
render_final.py
CHANGED
|
@@ -18,7 +18,7 @@ import math
|
|
| 18 |
# import ffmpeg
|
| 19 |
from PIL import Image
|
| 20 |
import argparse
|
| 21 |
-
|
| 22 |
class WeakPerspectiveCamera(pyrender.Camera):
|
| 23 |
def __init__(self,
|
| 24 |
scale,
|
|
@@ -162,9 +162,10 @@ def render(motions, outdir='test_vis', device_id=0, name=None, pred=True):
|
|
| 162 |
|
| 163 |
out = np.stack(vid, axis=0)
|
| 164 |
gif_path = os.path.join(outdir, f'{name}.gif')
|
| 165 |
-
imageio.
|
| 166 |
-
|
| 167 |
|
|
|
|
|
|
|
| 168 |
|
| 169 |
|
| 170 |
if __name__ == "__main__":
|
|
|
|
| 18 |
# import ffmpeg
|
| 19 |
from PIL import Image
|
| 20 |
import argparse
|
| 21 |
+
import moviepy.editor as mp
|
| 22 |
class WeakPerspectiveCamera(pyrender.Camera):
|
| 23 |
def __init__(self,
|
| 24 |
scale,
|
|
|
|
| 162 |
|
| 163 |
out = np.stack(vid, axis=0)
|
| 164 |
gif_path = os.path.join(outdir, f'{name}.gif')
|
| 165 |
+
imageio.mimwrite(gif_path, out, fps=20)
|
|
|
|
| 166 |
|
| 167 |
+
out_video = mp.VideoFileClip(gif_path)
|
| 168 |
+
out_video.write_videofile(gif_path.replace('.gif', '.mp4'), codec='libx264', fps=20)
|
| 169 |
|
| 170 |
|
| 171 |
if __name__ == "__main__":
|