プログラマのつれづれなるままにプログラマのつれづれなるままに音宮志久が思ったことなどをネタにします。プログラムネタ・数学ネタがメインです。VFR再エンコード編コメントを残すこの回の続きのようなものです。今回は再エンコード編ということで、iTunes経由で転送できないmp4の動画を再エンコードで転送できるようにしてやろう、という計画でしたが・・・。これがまた面倒でした。エンコードで使用するソフトはMediaCoderを使います。それ以外にも副作用でいくつかソフトが登場します。MediaCoderはVFRの再エンコードがちょっと苦手のような感じです。フレームレートが正しく設定できないような感じでした。そのまま変換すると途中で変換が止まってしまう例やらフレームレートが明らかにあっていない例やらが出てきているのを確認しています。これをクリアするために一部コマンドラインからの操作で何とか使用としてみました。手順がちょっとやっかいだがこんな感じです。source.mp4まずはこれでそれぞれのラインを抽出します。各トラックが映像ライン・音声ラインでないときはそれぞれを指すようにしてください。これでsource_track1.h264とsource_track2.aacというファイルが作成されるはずです。Main)[Ver2.1]にすることです。それ以外はあまり気にしなくても大丈夫です。画像サイズも一応640×480[4:3],640×360[16:9]を推奨しましたが、今現在は960×540[16:9]での変換をしています。このとき、フレームレート情報は絶対にいじらない(強制設定を行わない)でください。h264ファイルからでも変換できるので微妙に便利です。source.mp4mp4の映像ラインがVFRになっているときは、タイムコード情報が必要になります。dtseditというユーティリティを使ってそのタイムコード情報をいったんファイルとして取り出します。result.mp4これでh264から変換されたmp4にタイムコード情報を設定して正しいタイムコードの状態にします。この操作で出力されたmp4はこの時点でフレーム的なずれは消去されています。result.mp4で結合して完了です。音声ラインも再エンコードしたいときはMediaCoderに分離した音声ラインだけを再エンコードしてAACで出力すれば同じ操作で終了します。した方法ではないのが残念というか、もっと簡単な方法があるような気がしますが、無理にMediaCoderをエンコーダに使おうとしたためにこんな手順になっています。dtseditとtc2mp4は検索で見つかるユーティリティです。あと、それぞれの実行ファイルは同じディレクトリにあるものとしています。(mp4boxはMediaCoderがインストールされているならtoolsディレクトリにあります)どのユーティリティが使えるのかを調べるのに妙な時間を使いました・・・。コメントをキャンセルメールアドレスが公開されることはありません。気になるプログラムネタや数学ネタがあったら書き込みたいのだが残業が長すぎて眠気が全くとれず体調があまりよくない。過労などでぶっ倒れるかもしれない。あと、さすがに独り身が寂しいのでなんとかしたいと考えてはいるのだが...。アクセスカウンタアクセス数:スポンサーリンクモバイルバージョンに。