かなり前の「iOS向け高機能MP4自炊まとめ」というエントリで、Pegasys社のTMPGEncシリーズで書き出された.keyframeファイルを、mp4chap.exeでmp4ファイルに埋め込んで、iOS端末等でチャプターとして利用できる.chapters.txt形式に変換するツールを作った、と書いたところ、1年も経ったところで公開リクエストをいただいたので、公開しました。
こちらに置いておきます。
例によって自分用にサクッと作ったモノなので、あまり汎用性はないかも知れませんが。
また秒単位以下までキッチリ出力してほしいという要望があったので、v1.2では選択できるようにしてみました。もともと秒単位以下を切り捨ててた理由は、フレーム単位で指定してもmp4のようなフォーマットでは精密にジャンプできないことが多く、大抵少し前後してしまうことを鑑みて、例えばオープニングを飛ばした時に、少し本編の頭が欠けるよりはオープニングのお尻がちょろっと見える方がマシだろうと考え、フレーム単位は切り捨てをしていた、という経緯があります。が、まぁその辺りはお好みなのでなるべく厳密に計算した値を入れられるようにもしてみました。σ(^^)はMediaCoderでエンコすることが多いですが、今だとTMPGEnc Mastering Work 5でエンコすればKeyframeがきっちりIフレームとして扱われる気がするので、ドンピシャの方がいいのかも知れませんね。
ちょっと計算式がこれであってるか自信ないのでどなたかチェックしていただけると助かります。簡単には、.keyframeファイルの数値を29.97で割ると整数部分が秒単位になるので、それを取り除いた小数点以下の部分を使い、(特に指定してないですが多分)小数点以下4桁目を四捨五入して上位3桁を使用しているつもりです。
#そういう意味では「秒単位で丸める」というチェックボックスのラベルは不適切だなぁ(実際は切り捨て)。機会があれば直します。
なお、BDInfo.exeの「View Report…」等から取得できるBDMVのチャプター書式を.txt拡張子で保存したファイルをドロップした場合は、元々フレーム単位まできっちり出力してたみたいなので、こちらはそのままです。というか「秒単位で丸める」がONでも丸められません。手抜きですみません…
あと保存時にカチャっと確認音がしてたんですが、これもON/OFFできるようにと要望があったので対応しました。
ともあれ同好の士のお役に立てば幸いです。
わざわざ、それもこんなに早く修正してくださり、ありがとうございます。
数個のファイルで確認してみましたが、計算には問題ないようです。
記載の通り小数点以下4桁目が四捨五入されて上位3桁が使用されているみたいです。
ちなみにaviutlで作成したチャプターファイルとも比較してみましたが、
あちらは小数点以下4桁目以降を切り捨てしているようでした。
これからもこのソフトをありがたく利用させてもらおうと思います。
今回はわざわざ要望に応えていただき、本当にありがとうございました。
動作チェックありがとうございます。
とりあえず大丈夫なようでなによりです。
また何かありましたらお気軽にお知らせ下さい。
はじめましてteruと申します。
mp4chaps.exe用の.chapters.txtをTMPGEncシリーズの.keyframeファイルツールに変換するツールを探していたらこちらのブログにたどり着きました。
至極マイナーな用途なのは理解しているのですが
このツールにchapters.txt→.keyframeな機能を追加して、二つのファイルを相互変換できるようにしていただけないでしょうか?
突然のリクエスト申し訳ございません。
無茶なお願いでしたらスルーでよろしくお願いします。
teruさんこんにちは。
最近はTMPGEncシリーズもどんどん便利になっているので、そういうニーズもあるかも知れませんね。技術的には単純なのでまぁとりあえず動くものなら1,2時間でできそうな気はします。最近はiPhoneアプリばっか作ってるので、VBの勘が鈍ってなければ、ですが…
ただUI的にdgKeyframe2Chapterのインターフェイスは不要なので、別アプリにしてドラッグ&ドロップしたら問答無用で書き出すみたいな作りの方がいいかもですね。
ちょっと盆休み中にでもやってみます。
吉田さんはじめまして、pontaと申します。
dgKeyframe2Chapter、ほぼ毎日というレベルで使わせていたでき大変重宝しております。公開していただき大変ありがとうございます。
お忙しいところ、早速リクエストで大変恐縮です。
「TMPGEnc MPEG Smart Renderer 4」も発売され、BD対応もしており、私の環境では調子よく使っております。
ですが、やはり.keyframeフォーマットしか出力されないようです。
できれば「23.976」fpsも選択できるようにしていただけないでしょうか?
わがまま言いまして申し訳ありませんが、可能でしたらよろしくお願い申し上げます。
pontaさんこんにちは。
なるほど、TMSR4時代ではソースが23.976fpsな場合もあるんですねー。考えもしませんでした。
これは計算式いじるだけなのですぐできそうですね。.keyframeファイル自体にはfpsは書き込まれていないので、
アプリ上でドラッグ前に自分で選ぶ感じですかね。ちょっとやってみましょう。
P.S.
teruさんのご要望もまだ着手できてないので申し訳ないです。
dgKeyframe2Chapeter 1.3をリリースしました
TMPGEncシリーズが書き出すチャプター情報ファイル.keyframeをmp4box等でmp4ファイルに埋め込める.chapters.txtに変換する拙…
さくっと1.3を公開しました。記事中の直リンは既に直してあります、もしくは下記の記事からどうぞ。
//do-gugan.com/~furuta/archives/2012/08/dgkeyframe2chap_1.html
もし計算があわないとかあればお知らせ下さい。
古田さん、すいません目が悪いものでお名前間違えてしまいました。申し訳ありません。
23.976fpsに早速ご対応いただき、大変ありがとうございました。
早速使わせていただきます。
これでTMSR4の活用範囲も広がります。
ありがとうございました。
おぉ、早速リリースに気付いていただけて良かったです。
お役に立てば嬉しいです。
TVMW5でロゴ消し
TMPGEnc Video Mastering Works 5 今までMediaCoderをベースにしていたアニメエンコレシピを久しぶりに…