Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -2822,18 +2822,23 @@ def generate_enhanced_track_video(year, typhoon_selection, standard):
|
|
| 2822 |
interval=400, blit=False, repeat=True # Slightly slower for better viewing
|
| 2823 |
)
|
| 2824 |
|
| 2825 |
-
# Save animation
|
| 2826 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2827 |
dir=tempfile.gettempdir())
|
| 2828 |
-
|
| 2829 |
-
# Enhanced writer settings
|
| 2830 |
-
writer = animation.FFMpegWriter(
|
| 2831 |
-
fps=3, bitrate=2000, codec='libx264', # Slower FPS for better visibility
|
| 2832 |
-
extra_args=['-pix_fmt', 'yuv420p'] # Better compatibility
|
| 2833 |
-
)
|
| 2834 |
-
|
| 2835 |
print(f"Saving animation to {temp_file.name}")
|
| 2836 |
-
anim.save(temp_file.name, writer=writer, dpi=120)
|
| 2837 |
plt.close(fig)
|
| 2838 |
|
| 2839 |
print(f"Video generated successfully: {temp_file.name}")
|
|
|
|
| 2822 |
interval=400, blit=False, repeat=True # Slightly slower for better viewing
|
| 2823 |
)
|
| 2824 |
|
| 2825 |
+
# Save animation with graceful fallback if FFmpeg is unavailable
|
| 2826 |
+
if shutil.which('ffmpeg'):
|
| 2827 |
+
writer = animation.FFMpegWriter(
|
| 2828 |
+
fps=3, bitrate=2000, codec='libx264',
|
| 2829 |
+
extra_args=['-pix_fmt', 'yuv420p']
|
| 2830 |
+
)
|
| 2831 |
+
suffix = '.mp4'
|
| 2832 |
+
else:
|
| 2833 |
+
print("FFmpeg not found - generating GIF instead")
|
| 2834 |
+
writer = animation.PillowWriter(fps=3)
|
| 2835 |
+
suffix = '.gif'
|
| 2836 |
+
|
| 2837 |
+
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=suffix,
|
| 2838 |
dir=tempfile.gettempdir())
|
| 2839 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2840 |
print(f"Saving animation to {temp_file.name}")
|
| 2841 |
+
anim.save(temp_file.name, writer=writer, dpi=120)
|
| 2842 |
plt.close(fig)
|
| 2843 |
|
| 2844 |
print(f"Video generated successfully: {temp_file.name}")
|