tomo2chin2 commited on
Commit
c31d15a
·
verified ·
1 Parent(s): 5771837

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -1
app.py CHANGED
@@ -747,16 +747,22 @@ def create_video_with_audio_from_slides_v2(
747
  video_clip = img_clip.set_audio(audio_clip)
748
  clips.append(video_clip)
749
 
750
- logger.info(f"スライド {idx+1}: 音声{audio_duration:.2f}秒, 再生時間{slide_duration:.2f}秒")
751
 
752
  if not clips:
753
  raise Exception("動画クリップが生成されませんでした")
754
 
 
 
 
 
755
  if progress_callback:
756
  progress_callback(0.7, desc="動画を結合中...")
757
 
758
  # 4. 全クリップを連結
 
759
  final_video = concatenate_videoclips(clips, method="compose")
 
760
 
761
  # 一時動画ファイルに出力
762
  with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as tmp_video:
@@ -766,6 +772,7 @@ def create_video_with_audio_from_slides_v2(
766
  progress_callback(0.8, desc="動画をエンコード中...")
767
 
768
  # 5. 動画エンコード
 
769
  final_video.write_videofile(
770
  video_path,
771
  fps=30,
@@ -773,27 +780,34 @@ def create_video_with_audio_from_slides_v2(
773
  audio_codec='aac',
774
  logger=None # moviepyのログを抑制
775
  )
 
776
 
777
  # クリップをクローズ
778
  final_video.close()
779
  for clip in clips:
780
  clip.close()
 
781
 
782
  if progress_callback:
783
  progress_callback(0.9, desc="動画をアップロード中...")
784
 
785
  # 6. HFアップロード
 
 
786
  video_url = video_uploader.upload_video(video_path, prefix="slidedata_video_v2")
 
787
 
788
  # 7. 2ページ目画像アップロード
789
  page2_image_url = None
790
  if len(images) >= 2:
 
791
  page2_image = images[1]
792
  with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as tmp_img:
793
  page2_image_path = tmp_img.name
794
  page2_image.save(page2_image_path, format='JPEG', quality=90)
795
 
796
  page2_image_url = video_uploader.upload_image(page2_image_path, prefix="slidedata_page2")
 
797
 
798
  # 一時ファイル削除
799
  if os.path.exists(page2_image_path):
 
747
  video_clip = img_clip.set_audio(audio_clip)
748
  clips.append(video_clip)
749
 
750
+ logger.info(f"スライド {idx+1}/{total_slides}: クリップ作成完了(音声{audio_duration:.2f}秒 + 余白0.6秒 = {slide_duration:.2f}秒")
751
 
752
  if not clips:
753
  raise Exception("動画クリップが生成されませんでした")
754
 
755
+ # 総動画時間計算
756
+ total_video_duration = sum([clip.duration for clip in clips])
757
+ logger.info(f"📹 全{len(clips)}クリップ作成完了(総再生時間: {total_video_duration:.2f}秒)")
758
+
759
  if progress_callback:
760
  progress_callback(0.7, desc="動画を結合中...")
761
 
762
  # 4. 全クリップを連結
763
+ logger.info(f"🔗 動画結合開始: {len(clips)}個のクリップを連結中...")
764
  final_video = concatenate_videoclips(clips, method="compose")
765
+ logger.info(f"✅ 動画結合完了")
766
 
767
  # 一時動画ファイルに出力
768
  with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as tmp_video:
 
772
  progress_callback(0.8, desc="動画をエンコード中...")
773
 
774
  # 5. 動画エンコード
775
+ logger.info(f"🎬 動画エンコード開始: {total_video_duration:.2f}秒の動画をH.264/AACでエンコード中...")
776
  final_video.write_videofile(
777
  video_path,
778
  fps=30,
 
780
  audio_codec='aac',
781
  logger=None # moviepyのログを抑制
782
  )
783
+ logger.info(f"✅ 動画エンコード完了: {video_path}")
784
 
785
  # クリップをクローズ
786
  final_video.close()
787
  for clip in clips:
788
  clip.close()
789
+ logger.info(f"🧹 メモリ解放完了({len(clips)}クリップクローズ)")
790
 
791
  if progress_callback:
792
  progress_callback(0.9, desc="動画をアップロード中...")
793
 
794
  # 6. HFアップロード
795
+ video_file_size = os.path.getsize(video_path) / (1024 * 1024) # MB
796
+ logger.info(f"☁️ 動画アップロード開始: {video_file_size:.2f}MB → Hugging Face Dataset...")
797
  video_url = video_uploader.upload_video(video_path, prefix="slidedata_video_v2")
798
+ logger.info(f"✅ 動画アップロード完了: {video_url}")
799
 
800
  # 7. 2ページ目画像アップロード
801
  page2_image_url = None
802
  if len(images) >= 2:
803
+ logger.info(f"🖼️ 2ページ目画像アップロード開始...")
804
  page2_image = images[1]
805
  with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as tmp_img:
806
  page2_image_path = tmp_img.name
807
  page2_image.save(page2_image_path, format='JPEG', quality=90)
808
 
809
  page2_image_url = video_uploader.upload_image(page2_image_path, prefix="slidedata_page2")
810
+ logger.info(f"✅ 2ページ目画像アップロード完了: {page2_image_url}")
811
 
812
  # 一時ファイル削除
813
  if os.path.exists(page2_image_path):