MediaCoder | 英太郎の鯖缶

カテゴリアーカイブ: MediaCoder

フォルダ内の.h264(.mp4)+.m4a(.aac)+timecode(.txt)を一括でMUX

2009年06月04日

フォルダ内にある、映像ソース+オーディオ+タイムコードを一括で結合するバッチファイルです。
.mp4内にオーディオパートがあっても映像パートのみ使用します。

※動作を保障するものではありませんので、苦情は受け付けません!


→続きを読む:

フォルダ内の動画(avi、mp4、mkv)を一括分解

2009年06月04日

フォルダ内の動画ファイルを一括で分解するバッチファイルです。
mkv内の音声は拡張子.oggで暫定でつけていますので、MediaInfo等で内容を確認してください。

※動作を保障するものではありませんので、苦情は受け付けません!


→続きを読む:

mp4ファイルのタイムコードがおかしくてMUXできない?

2009年06月04日

mp4ファから一度分離したタイムコードを使って、MUXしようとしてもエラーでうまくできない場合、ファイルが壊れている可能性がありますが、DtsEditを使うとうまくやってくれる場合があるようです。

DtsEdit.exe -tc timecode.txt source.mp4 -o new.mp4

一部フレームレートがおかしくなる部分もあるようですが、概ねちゃんと修正してくれるみたいですね。

mp4にこだわらないなら、mkvmergeでmkv化しちゃえば、こっちはエラーがあったタイムコードでも読んでくれました。

MediaCoderでエンコード - avi編

2009年06月02日

avi編です。aviファイルはよく120fps化してあったりしますが、やることはmkv編といっしょです。

これは、私の都合ですが、aviファイルから直接timecodeを取得するソフトを探すのが面倒だったので、timecodeはmkv化して取得しています。使うツールももmkv用と同じなので、ツールはこちらを参考にしてください。

では、分離手順。

mkvファイル作成
mkvmerge "source.avi" -o "temp.mkv"

タイムコード取得
mkvextract timecodes_v2 "temp.mkv" 1:"timecode.txt"

rawvideo取得
mp4box -aviraw video "source.avi"

24fpsでMUX(DX50)
mp4box -add "source_video.cmp" -fps 23.976 -new "rawvideo.mp4"

h264のときは
mp4box -add "rawvideo.h264" -fps 23.976 -new "rawvideo.mp4"

rawaudio取得
mkvextract tracks "source.mkv" 2:"rawaudio.ogg"

分離したら、エンコードします。
以下mkv編と同じ(手抜き)。

avidemux.batをおいておきます。

MediaCoderはフロントエンドなので、使うエンコーダーやデコーダー、設定で色々できるので、気に入った設定が見つかるまでやることが多いですが、慣れると使いやすいかなと思います。

お手軽一発ではないので、いじるのが好きな人向けでしょうかね?

MediaCoderのちょっと困ったこと?

2009年05月31日

MediaCoderでエンコするとき、エンコードの準備が済んだら、スタート前に「現在の設定を保存」を行っておきましょう!ちょっとしたことでハングアップしてしまうことが何気に多いからです。止まったときはタスクリストから関連のソフトを全部KILLしてからやらないと、裏で動き続けたりするので、心配なら一度ログアウトしちゃうのも手です。

それから、原因がよくわからないのですが、オーディオのエンコ時、途中で切れたりします。このときは、オーディオのみ再度エンコードして、手動でMUXするのが早くて簡単です。

MediaCoderでエンコード - mkv編

2009年05月31日

可変フレームレートな動画をリサイズしてエンコードしたくなり、色々調べてみましたが、お手軽な方法はなかったので、動画を分離後、固定フレームレートに変更してエンコード、タイムコードを適用してMUXすることにしました。

動画のエンコードにはMediaCoderを使用しています。

あっと、いい忘れましたが、mkvファイルの中身は h264 + audio の構成とします。それ以外の構成は私にはわかりかねます。

必要なソフトですが、まず、MKVtoolnixをインストールしておいてください。

次に、GB.exe(ファイルをゴミ箱へ入れるソフト)と mp4box.exe、tc2mp4.exe か tc2mp4Mod.exe (私は tc2mp4Modを使用してます)が必要になります。これらをパスの通った場所へコピーしておいてください。

それではまずファイルの分離をします。

タイムコード
mkvextract timecodes_v2 "source.mkv" 1:"timecode.txt"

.h264
mkvextract tracks "source.mkv" 1:"rawvideo.h264" --no-ogg

cfr mp4 作成
mp4box -add "rawvideo.h264" -fps 23.976 -new "rawvideo.mp4"

オーディオ
mkvextract tracks "source.mkv" 2:"rawaudio.ogg"

順にタイムコードの分離、h264ソースの分離、h264ソースを固定フレームレートでmp4ファイル作成、オーディオファイルの分離を行っています。

次にエンコードをします。これはmp4ファイルとoggファイルをそれぞれエンコードすればOKです。

エンコが終わったらMUXします。

エンコード終了ファイル置き場へタイムコードファイルを移動し、

vfr作成
tc2mp4Mod -i "cfrvideo.mp4" -t "timecode.txt" -o "vfrvideo.mp4"

オーディオmux
mp4box -add "vfrvideo.mp4" -add "audio.m4p" -new "video.mp4"

で可変フレームレートなmp4ファイルの出来上がりです。ソースのビットレートなどは動画サイズや好みに合わせて変更してください。


フォルダ内のファイル一括分離合成追加しましたので、合わせてどうぞ。

demux と mux は、それぞれ .mkv .avi .mp4 ファイルのある場所で実行すれば連続で処理してくれます。処理後ファイルがゴミ箱に入るものもありますので、ディスクの空き容量には十分注意してください。

mux.bat は、アスペクト比変更できますので、アスペクト比が変になったり間違ったりした場合に一括で変更できます。オプション無しで聞いてきますので、 1:1 (ピクセル比1/1)、オプションは 32:27 等指定します。

アスペクト比の計算には AspectCalc が便利ですよ!