原子番号26

102月/130

ステレオの左右に別言語が入ってる動画の言語を分割する


ステレオ音声の左右にそれぞれ2か国語などの別音声が入ってる動画を複数言語の切り替えをできるように sox と ffmpeg で作り変える時のメモです。

$ ffmpeg -i movie.mp4 movie.wav
$ sox movie.wav out.l.mono.wav remix 1
$ sox movie.wav out.r.mono.wav remix 2
$ sox -M out.l.mono.wav out.l.mono.wav out.l.stereo.wav
$ sox -M out.r.mono.wav out.r.mono.wav out.r.stereo.wav
$ ffmpeg -i out.l.stereo.wav -vn -ac 2 -vol 256 -ab 96k movie1.m4a
$ ffmpeg -i out.r.stereo.wav -vn -ac 2 -vol 256 -ab 96k movie2.m4a
$ ffmpeg -i movie.mp4 -i movie1.m4a -i movie2.m4a -map 0:0 -map 1:0 -map 2:0 -vcodec copy -acodec copy newmovie.mp4

長いっ! ムダに長い!
一行で書けないかなあ、これ。

Filed under: CUI No Comments
2712月/120

ffmpeg でH264に変換済みの動画とmp3の音声を結合させる


Avi→mp4への変換を行ってたら

何故かAviutlでは動画のH264へのエンコードはうまくいくのに音声の変換がうまくできないファイルがあったのでその時の対処法をメモ。

1. aviファイルから音声を抜き出す

まず音声をFree Audio Exractorを使い "Same format as original"で出力します。

2. ffmepgでaacに変換する

こんな感じに変換する。
ffmpeg.exe -y -i hoge.mp3 -vn -ac 2 -vol 256 -ab 112k hoge.m4a

ビットレートは112kで低めなのでもうちょっと高くしたい人は256kとか好きな値を入れましょう。

3. ffmpegで動画と音声を結合する

こんな感じで結合
ffmpeg -i hoge.mp4 -i hoge.m4a -vcodec copy -acodec copy output.mp4

-vcodec, -acodec, でcopyを指定するば再圧縮せずに結合だけしてくれる。

ffmpegについてよく知らなかったけど、知れば知るほど何でもできますね、このツール…。

気をつけること

ffmpegのバージョンが古いと
Estimating duration from bitrate, this may be inaccurate
というエラーメッセージが出ました。

-analyzeduration とかのオプションを付けてみましたが解決しませんでしたが、新しめのffmpegをダウンロードしてきたら変換出来ました。

参考サイト

CLI to mux/merge MP4 video and AAC audio?
http://forum.videohelp.com/threads/300841-CLI-to-mux-merge-MP4-video-and-AAC-audio

ffmpeg | 銀メモ -SilveryMemo-
http://silverymemo.wordpress.com/category/pc/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2/ffmpeg/

Filed under: CUI, 動画 No Comments
13月/100

chkdskの結果を英語で表示


前回の記事にも書いたようにハードディスクをオークションに出しているのだけでも、商品説明を書くときにちょっとつまづいたのでそこについても書いていこうと思う。

e-bayは誰もが知ってる通りオークションサイトなわけですが、出品するときは当然商品の解説を書いていかないといけない。 ハードディクスの容量や回転数それにメーカーなどを書くだけでも問題はないけども、簡単なスペック以外にも chkdsk の結果を載せていた方が相手にわかりやすい。 そこで [Windowsキー + R] で cmd を叩いてコマンドプロンプトで chkdsk を行ったわけだけども、そこで気づいた。

表示が日本語だ!!

これじゃドイツのe-bayに出したら最悪、悪質な出品者としてアカウントを止められかねないので、英語かドイツ語にする方法を探してみたら @IT にピタリの記事が見つかった。

Vistaでjp、usコマンドを利用する - @IT

  • 英語コード・ページに切り替えるには「chcp 437」
  • 日本語コード・ページに切り替えるには「chcp 932」

これに従って、 chcp 437 を入力してから chkdsk を実行したら英語の出力結果を無事に取得できたので、それを追加して出品作業完了!

この chcp で他の言語の表記ができないか探してみたら下にあるように文字コードは用意されてるらしい。

Chcp - Windows helpline

  • 437 USA
  • 850 Multilingual (Latein I)
  • 852 Slawisch (Latein II)
  • 855 Kyrillisch (Russisch)
  • 857 Türkisch
  • 860 Portugiesisch
  • 861 Isländisch
  • 863 Französisch (Kanada)
  • 865 Nordisch
  • 866 Russisch
  • 869 Modernes Griechisch

ところが実際これを使って、例えば 855 でロシア語になるかためしてみたけども表示は英語のままだった。日本語環境だからそうなってしまうのか、それともロシア語圏では元々コマントラインでの処理は英語になってるのかどうかは謎のまま。