動画編集のフロー
何となく見えてきた。
- Shotcutで動画を読み込んで、mp3で音声を書き出す
- 書き出したmp3をS3にアップロードする
- Amazon TranscribeでVTTファイルを作成する
- VTTファイルをマーカーとみなしたMLTを作成する
- Shotcutで編集して動画をmp4で書き出す
- MLTのマーカーからVTTを出力する
- ffmpegでmp4とVTTを合成する
POSTS
何となく見えてきた。
MLTをgoのstructに読み込もうとして、やっぱりよくわからない。
MLT自体の仕様はmltframework/mlt: MLT Multimedia Frameworkにある。
xsdファイルがあればdroyo/go-xml: utility and code-generation libraries for XMLとか使ってgoで使えるようにできそうなんだけど、dtdしかない。
っていうかdtdをstructに書き換えれば良いのか?
と思ったけど良さそうなものが見つかった。miku/zek: Generate a Go struct from XML.。
Read more機能追加していたら、ダメなコードの見本みたいになり始めてきた。
機能ごとに分けるとかし始める必要がありそう。
あと、XMLの出力をベタに文字列結合でやっているので、ちゃんとライブラリ使って生成するようにしたい。
Goだとxml package - encoding/xml - Go PackagesのMarshalを使えば良さそうだけど、構造体の定義面倒だな。。
ShotcutのマーカーとVTT(SRT)が相互変換出来たら便利ではないかと妄想。
どちらも開始と終了のタイムスタンプとテキストが書けるので、要素的には問題なし。
Kindleで安くなっていたので、買ってみた。
こっちも評価が良くて、iPadでの例が見たかったので買ってみた。
「はじめての~」から読み進めている。iPadの章まではまだたどり着いていないが、人物の書き方とかためになると思った。
Read more普通にGoのテストとして書いたほうが融通が利くので、そのようにすることにした。
たぶん使いどころが間違っていたのだと思う。
適所であればGinkgoも有効なはず。
Ginkgo使えば使うほどわからなくなってくる。
上から順番に、途中経過もチェックしながら実行したいだけなんだけどなぁ。
VTT編集するWebアプリ作ろうと思って、環境何にしようかというところで、Next.jsが簡単そう(イメージ)な気がしたので選んだ。
リポジトリ作って初期化したあと手が止まったので、Amazon.co.jp: TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発 eBook : 手島 拓也, 吉田 健人, 高林 佳稀: 本を買ってみた。出版が新しめだったのが理由。
Read moreShotcutでマーカーをchainの開始に合わせて配置したいと思って、mltにマーカーの記述を追加してみた。
Shotcutで開くと、なんかずれてる。
そもそも、mltファイルでは時間をミリ秒表記でやってるのに、アプリではフレーム単位?0~29で扱われているので、なんかその辺の誤差とかなのかなーとか、管理してる時間軸が違うのかなーとか。
Read more