以前から考えていることですが、プレゼンテーションは文字だけではなくて、図だけでもなくて、 アニメーション + 音声で作った方が最も刷り込みが効率的にできると思っているのですが、daVinci Resolve で作成するのはかなり時間がかかってしまいます。
慣れれば daVinci Resolve が最も質の高いコンテンツが作れる気がしますが、もっと簡単に作れる方法はないかと思っていました。
power point の使い方はあまり良くわかりませんが、この方法が最も簡単かもしれません。
例えば以下のようなタイトルを作成します。
以下のようなテキストファイルを作成します。
windows2000に、office2000 professional をインストールします。
これを python で音声化します。
from gtts import gTTSimport osimport subprocess
dir = 'C:/Users/mituo/Documents/vscode_python/Speaker/text/'
textfile = dir + 'senario.txt'
fp_in = open(textfile, encoding='utf-8')text_aa = fp_in.read()fp_in.close()
if(os.path.isfile(dir + 'def.mp3')): os.remove(dir + 'def.mp3')
tts = gTTS(text_aa, lang='ja', slow=False)tts.save(dir + 'def.mp3')
command = 'ffmpeg -y -i ' + dir + 'def.mp3 -af atempo=1.2 ' + dir + 'output.mp3'subprocess.call(command, shell=True)
os.system('start ' + dir + 'output.mp3')
python で静止画と音声ファイルを結合します。
from moviepy.editor import *
# 画像と音声のファイルパスimage_path = 'C:/Users/mituo/temp/office2000 - 1.png'audio_path = 'C:/Users/mituo/temp/output.mp3'output_path = "output_video.mp4"
# 画像クリップを作成(画像の長さを音声の長さに合わせるため duration は指定しない)image_clip = ImageClip(image_path)
# 音声クリップを作成audio_clip = AudioFileClip(audio_path)
# 画像クリップの長さを音声クリップの長さに設定image_clip = image_clip.set_duration(audio_clip.duration)
# 画像クリップに音声を追加video_clip = image_clip.set_audio(audio_clip)
# 動画をMP4で出力video_clip.write_videofile(output_path, fps=24, codec="libx264")
出来上がったものは、
上の方法で作成された mp4 ファイルを iPad の Safari で閲覧しようとしても音声が出ません。
以下のように変換すれば音声が出ます。この理由がわかりません。
#!/bin/sh
for file in `find ./before -name "*.mp4"`; do faname_ext="${file##*/}" fname="${faname_ext%.*}" echo $fname ffmpeg -i $file -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" ./after/$fname.mp4done