前回の記事で作成したシェルスクリプトの詳細になります。
1-edit.sh

20211108-01
 aの部分は「これはシェルスクリプトですという宣言。 /bin/sh はbashへのシンボリックリンクになっています。
 もしかすると環境によっては /bin/sh が存在せず、パスが異なるかも知れません。

 bの部分は read を使って変数を設定しています。 readの行で入力町状態になるので、その前の行に「何を入力するのか」をechoで表示するようにしました。
 曲の文字が間違っていますが、どうせ自分用なので放置してますねコレは。

 cの部分はsoxで3つの録音ファイルを音量調整して別ファイルに保存、それらのファイルを結合した音源ソースalpha.wavの生成、音源ソースのmp3エンコードでalpha.mp3の生成を行っています。
 &[変数]で、bの部分で設定した変数を展開してファイル名に使っています。

 dの部分は映像ソースのmp4圧縮、生成されたalpha.mp4を映像、Cの部分で作成したmp3を音源としてtest.mp4を生成します。


 ページ冒頭の動画を見ると判りますが、今回使っている映像・音源ソースは冒頭に余計な部分が含まれていました。 この余計な部分をカットする必要がありましたが、test.mo3を直接カットすると映像が表示されなくなったので、ソースファイルをカットして結合し直すことにしました。


1-fix.sh
20211108-02
 eの部分はreadで変数の設定。 今回はsoxとffmpegが共通で扱える xx:yy:zz(.aa)形式で時間を格納します。
 録音時間というよりは終了時間ですね。

 fの部分はcで生成した中間ファイルalpha.wavの先頭と末尾を指定した時間でカットしてmp3にエンコードで音声ソースalpha.mp3を生成、alpha.mp4をカットして映像ソースalpha2.mp4を生成、これらのソースを結合させてtest2.mp4を生成。

 感想:作業の8割くらいは自動化できたと思います。