2
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

ファイルサーバーだけど、色々させていきたい。(ffmpeg編)

この上なく適当なメモ書き。
詳細はちょいとググればわかるはず。

自宅のNAS(Rockdisk...)がおぼつかない & 1TBのUSB HDDが空いた & Thinkpad X200が遊んでる状態だったので、NAS化。
そのついでに、形式もバラバラでMacからだと見づらい動画ファイルに焦点をあてて対応策を考えてみた。

簡単に言うと変換させるだけですがね!

ローカルでやると、シャットダウンできなかったりするので、OpenMediaVault(以下OMV)上で処理させる。
OMVのインストールについては、ググると色々出てくるので割愛。
ってか、そんなに難しいことはない… GUIだし(´・ω・`)

1.ffmpegをインストール

まず、動画変換をするためにffmpegをインストールする。
OMVはdebianなので、色々障壁があります。

とりあえず、何も考えずに以下の様にしてみた。

# apt-get install ffmpeg

・・・インストールはできた?っぽい。

# ffmpeg -i hogehoge.flv hogehoge.mp4

・・・なんかエラーでた!!
どうやら、普通にインストールしてもうまくいかない様だ。
aacのライセンス等々の問題もあり、それなりの手順を踏まなければダメらしい。(Ubuntuとかであれば大丈夫らしい?深くは調べていない)

以下にご丁寧にインストール用のシェルスクリプトを上げている方が居たので拝借。

GitHubだけど、このスクリプトだけで動く様なので、コピペで。
cloneとかしない。
適当に適当なところに作って実行〜

# vim /tmp/full-ffmpeg.sh
# chmod +x /tmp/full-ffmpeg.sh
# /tmp/full-ffmpeg.sh

エラーやらなんやら出るけど、とりあえず無視。
自分の望む結果が得られればOK。

とりあえず試してみる。
さっきのコマンドを再度実行。

# ffmpeg -i hogehoge.flv hogehoge.mp4

・・・なんかエラーでた!!
エラー内容でググったりすると、オプションをつければOKらしい。

# ffmpeg -i hogehoge.flv -strict -2 hogehoge.mp4

・・・でけた!なんかでけた!!

と言うことで、あとは1ファイルずつちまちまやるのは現実的じゃ無いので、簡単なスクリプトを書く。

2.複数ファイルを処理させるシェルスクリプト(糞)を作る

encode.sh
DIRPATH=$1

mkdir /tmp/encode_bk

for FILE in ${DIRPATH}*.flv
do
    ffmpeg -i "${FILE}" -strict -2  "${FILE%}.mp4"
    mv "${FILE}" /tmp/encode_bk
done

説明の必要もない感じ。
パラメータのパス配下の.flvの拡張子が付いているファイルを.mp4に変換かけて、終わった元のファイルを別のディレクトリに移動させているだけ。(目的を達成するためだけなので若干、出来たファイル名が変だったりするけど問題なし。趣味だしどうせ。)

移動させているのは、同じファイル名で拡張子の違うファイルがごちゃごちゃできて、より一層うざい感じになるのを避けるため。
あとで消すなり、元に戻すなりできるので退避。

3.実行!放置!

放置する為に、tmuxで実行する。

# tmux
# /tmp/encode.sh

そしておもむろにセッションを切り放置。
寝てる間に完了しているはず?

以上、まだ完了していないので結果はわからない(笑)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?