infoMenuBicyclesEssaysSoftwares秘密録音した音声ファイルをYoutubeにバックアップ私はパワハラ対策として、毎日ICレコーダーを使って秘密録音を実施している。毎日10時間を超える録音時間のため、32kbpsで録音しても1日あたり200MB弱の音声ファイルがHDDに追加されていき、HDDの容量を圧迫していく。HDDの空き容量が減ってきたらオリジナルの録音ファイルを消去していくことにした。ffmpegを使い、以下の手順で実施する。適当に画像ファイルを作成する画像ファイルから無音声の動画ファイル(再生時間24時間)を作成する無音声の動画ファイルと、毎日録音した音声ファイルを結合する結合した動画ファイルをYoutubeにアップロード具体的には、適当にblank.pngという名前で640x480とか好みのサイズで画像を作成し、以下のコマンドで24時間の無音声動画ファイル(blank24.mov)を作成。fps、動画時間が24時間(86400秒)の無音声動画ファイルblank24.movができる。私の環境では5分程度かかったが、このファイルは1度作っておけば何度でも使えるので、最初の1回だけ待てば良い。次に、この無音声の動画ファイル(blank24.mov)と、録音した音声ファイル(input.mp3)を結合する。output.mov-shortestオプションを加えているので、24時間のblank24.movと音声ファイルの時間のうち、短い方の時間でoutput.movが作成される。動画になったことにより、元のMP3ファイルよりもファイルサイズが1割ほど増える。私の環境では12時間程度録音したものからでも1分程度のエンコード時間で動画ファイルを作成できた。それと競合しないコンテナ形式を選んだ。都度動画部分のエンコードが発生するため時間がかかる。copyとすることで再エンコードを省略すれば、毎日の処理が高速化できる。Youtubeの制限により、15分の制限を解除したアカウントでも、動画の最長時間は12時間に制限される。したがって、私は以下のようなシェルスクリプトを書いて実行している。fidone事前に音声ファイルのDurationを調べておき、12時間以上ならば最初の11時間とその後の部分に分割するようにした。カレントディレクトリ以下の*.mp3、*.mp4、*.m4aファイルが、動画として*.movファイルに保存される。あとは出来あがった*.movファイルをYoutubeにアップロードして待つだけ。できればアップロードも自動化したかったが、OAuth2に対応する必要があるため、シェルスクリプトでは難しそう。アップロードした動画は公開してもいいことはないと思うので、非公開にするのを忘れずに。その時はあきらめてそのファイルだけ別のオンラインストレージサービスにでもアップロードしておけば良いと思う。クラウド上にデータがあるので、急遽証拠として音声を提示する必要が出たときにも対応できる。そのような機会がないことを願っているが。追記1年間、出勤日に録音→Youtubeにアップロードを運用してみた結果、音声ファイルで38.3GBになった。上記の動画化を行なって40GBほどの映像をYoutubeにアップロードしたことになるが、今のところ問題なし。