FC2ブログ

PCで: FFmpeg:MPEG-2 TS→MPEG-4でAACのオーディオをコピー(2)

 タイトルの通り、今回の話は以前の話の応用です。
 なんでこういうことになったのかというと、先日書いたこの夏のアニソンの話から始まります。

 あのお気に入りの二曲をもっと手軽に聴きたいのですよ。最初は一々録画したのを再生していたのですが面倒になってきて。
 昔は、音だけを抜き出してAudacityで切り出したりしていたのですが、FFmpegと一緒にmakeしたつもりなのにどうもAACを受け付けてくれなくて。しかたないからWAVで出力してFLACにしたりとかやっていました。
 ちなみに、Audacityのmakeのとき、src/FFmpeg.hをちょっと直しました。最近のFFmpegで宣言が変ったのか、それともコンパイラの問題か、何カ所か(具体的にはAVOutputFormat, AVFifoBuffer, AVDictionary)のところにconstを付けないといけないみたいで。
 あと、SF_STR_GENREとかがないと言われる場合はlibsndfileを新しくする必要があるようです。

 まあそういう話はおいといて。
 今回はちょっと発想を変えてみました。以前やったようにTS→MP4ができるようになっているので、ちょっと細工して、音だけのMP4作っちゃえばいーじゃんという方針で。
 というわけで、前回作ったスクリプトをちょっといじくって、Sound Only(笑)オプションを付けてみたりしました。

 間に合わせの改造であまり汎用的にできてないので、それによって実際に実行されるコマンドラインを表示してみるとこんな感じになりました。
ffmpeg -i gakkou_211_20150807-002930.ts -ss 00:25:15 -t 90 -metadata title='ハーモナイズ・クローバー' -map 0:a -y -f mp4 -vsync 1 -acodec copy -bsf aac_adtstoasc gakkou_211_20150807-002930.mp4

 下線はファイル毎に変えるであろう個所。また、ポイントはこんな感じ。
  • -ss, -t
    00:25:15のところまでシークして、90秒分だけ出力した。時間の指定は秒でもいいしhh:mm:ss[.xxx]でもいい。
  • -metadata
    とりあえずタイトルくらいは入れてみた。
  • -map
    0番目の入力ファイル(一個だけですが)のオーディオのみを指定。つまり、ビデオはスルー。

 どーでもいい解説を追加すると、『がっこうぐらし!』が8月7日なのはこの次の回はエンディング曲が違うから、スタート時間に関しては番組開始の30秒前から録画しているからちょっとずれている、とか。
 どーでもいいけどもうちょっと意味のある解説を追加すると、例のスクリプトに-oオプションと-Oオプションがあるのは、空白の扱いのためです。該当する部分を抜き出してみると、こういう違いがあります。
        o)  opts=("${opts[@]}" "$OPTARG") ;;
O) opts=("${opts[@]}" $OPTARG) ;;
 optsという配列にffmpegに渡したいオプションを追加していくのですが、その際、-oだと空白を含んだまま一つのオプションとして、-Oだと空白で区切って複数のオプションとして処理します。つまり、-Oだと一度に沢山渡せますが、空白を含むものは分離してしまう。
 勿論、ffmpegのコマンドラインに渡すときには、"${opts[@]}"という風に使います。

 シェルスクリプトでは特にそうなのですが、空白文字がどのように扱われるかを常に意識するのが重要なポイントでしょう。変数を使うときには原則として""でくくるとか。
 なんでこんな注記をしたのかというと、今回はたまたま関係なかったのですが、曲のタイトルなどに空白が入っている場合には気をつけないといけない話なので。

 という話はやっぱりどーでもいいですね。
 というわけで、音だけのMP4ファイルができました。以前のようにWAVにしてFLACにしてなんて手間のかかることをしなくていいし、データ形式の変換も少ないし、でき上がるファイルも小さいし、メタデータも入るし。
 一般的にどうかは知りませんが、こういう変なファイルでも多分普通に再生できると思うし。
 ちょっとだけ気になったのは、音がちょっと小さいことですかね。

コメント

非公開コメント

プロフィール

水響俊二

Author:水響俊二
水響 俊二 [MIZUKI Shunji]

暫定的に、18禁作品の感想などは裏サイトで書いています。
 

最新記事
勝手広告その2
最新コメント
カテゴリ
検索フォーム
リンク
RSSリンクの表示
月別アーカイブ
アクセス解析中