iPhoneでチャプター

コメントでiPhoneでチャプターが反映されないとあったので、iPhoneでチャプターならちょっと変わった方法があるのでご紹介。ただ、残念ながらこの方法では自動フィールドシフトと一緒には使えないのでそこは注意。

ようはL-SMASHのチャプター読み込みを使ってしまおう、ということ。

POP氏のx264 L-SMASH版をダウンロード。そいでchapter.aufでチャプター打ち込み。自動出力にチェック。

それからx264guiExの設定画面で以下のところを変更。

1.「x264.exeの指定」で今ダウンロードしたx264 L-SMASHを指定

2. 「音声先にエンコード」にチェックを入れる

3. 追加コマンドに
--audiofile "%{audpath}" --acodec copy --chapter "%{aviutldir}\chapter.txt"

4. 「外部muxerを使用する」のチェックを外す

5. エンコ開始

これでできたmp4をiPhoneに送ればいいはず。(iTunesではチャプター反映された)

設定ファイルのサンプルをあげておきます。
こちら>>
x264guiEx_stgフォルダに入れて使ってみてください。

iPhone4の技術仕様を参考にmain profile, Level 3.1で作ってあります。4Sならhigh profileが使えますけどね。
スポンサーサイト

コメントの投稿

非公開コメント

No title

MP4Boxでも出来るんですけどねー。
チャプター編集 for AviUtlプラグイン(chapter.auf)の出力フォーマットがそれにそぐわないだけで。

Appleが使用するチャプターは参照テキストトラック形式で、トラック自体がチャプターとなっていて、それを別のトラックが参照することで機能しているんですよね。
これは画面に表示しないだけで、ただのテキストトラックと変わらないので、実はMP4Boxではtimed textとほぼ同様の方法を以て追加が可能です。
ただ一点違うのは入力パスの末尾に :chap と付けるだけ。

mp4box -add video.mp4 -add audio.mp4 -add chapter.txt:chap -new movie.mp4

----------------- chapter.txtの例 -----------------
<?xml version="1.0" encoding="UTF-8" ?>
<TextStream version="1.1">
<TextStreamHeader>
<TextSampleDescription>
</TextSampleDescription>
</TextStreamHeader>
<TextSample sampleTime="00:00:00.000">チャプター名1</TextSample>
<TextSample sampleTime="00:01:00.000">チャプター名2</TextSample>
<TextSample sampleTime="00:01:30.000">チャプター名3</TextSample>
</TextStream>


まぁ、要するに、こんな感じになるように(変換なり)すれば良い。
<TextSample sampleTime="00:00:00.000">の直前までが必要なヘッダ。


ちなみにHaali Media SplitterはNero形式のチャプターのみのサポートで、しかも文字エンコーディングはSJISじゃないと文字化けします。
LAV SplitterはUTF-8じゃないとダメです。
Apple製品は一部SJISがあるらしい(?)ですが、基本はUTF-8です。
なので、とりあえずMP4のチャプターを使うなら、Haaliは使わない方がいいでしょう。(互換性が悪すぎる)

・おまけ
MP4のチャプターには3種類あって、
1. Nero形式 (ユーザデータ領域を利用)
2. Apple形式 (テキストトラックを参照してチャプターとして扱う)
3. BIFS/OD (MP4の"概念"を知らないと長くなるので割愛)
WindowsではNero形式が、Apple製品ではApple形式がデファクトスタンダードです。
BIFS/ODが正統ですが、実装が激しく面倒なので、誰も実装したがりません。
実装しても使えません。(苦笑)
OSS界でこれを解釈できるのはGPACのOsmo4くらいでしょう。(そもそもBIFS/ODをちゃんと実装しているOSSがGPACくらいなので)


個人的には素人がmp4boxを使うこと自体がなんだかなーと思うんですけどね。
MP4規格を理解していない人がmp4boxを使うと、99%以上の割合で<<< MP4 >>> 作ってない且つ規格的によろしくないんで。
MP4なら--brand mp42 を。Apple用MP4ならそれに加えて--ab M4V を加えるのが規格的に正しい作成方法です。

Re: No title

むぅ、なるほど。またいろいろ厄介な…

そうすると、mp4boxでWindows系とApple系、両方でチャプターを使えるmp4を作るには、nero形式のチャプターからapple形式に変換したチャプターを作って(今回は手作業で変換w)

mp4box -brand mp42 -add video.mp4 -add audio.m4a -add chap_type_apple.txt:chap -chap chap_type_nero.txt -new movie.mp4

みたくすればいいかな、と思って両方入れたmp4を作ると
LAV Splitter 0.37 → OK
Haali Media Splitter 20110303 → OK
iTunes 10.5 → OK
MediaInfo 0.7.50 → OK
となっていい感じなんですが、両方入れちゃうってどうなんでしょう?
邪道なんでしょうか?
L-SMASHでどうなっているのか、ちょっとよくわからなかったもので…

いずれにせよguiExのチャプターの扱いを変えたほうがいいかなと思ったり。
ともかく、ありがとうございました。

No title

L-SMASHではAppleのMP4であるという宣言(M4V, M4A, M4P, M4B)を確認した場合に、チャプター用のテキストトラックの付加を許可しています。
x264_L-SMASHではAppleのMP4が格納可能な音声ストリーム(aac及びalac)をmuxする場合にM4V, M4Aのbrandを付加しています。
Appleはほとんどのversion=1のboxに対応しておらず、下手に追加するとApple MP4の規格的にマズーなので、通常は付加しない。という方針にしています。

邪道な気がしなくもないですが、「分からないものは読まない」がMP4コンテナのreaderにおける原則なので、まぁ、気にする必要は無いと思います。
むしろ、これを邪道だと思うくらいなら、規格外の機能を勝手に定義されて、mp4raに登録すらしないNero形式チャプターの存在の方が邪道です。
登録しないから、名前が同じで構造の違うboxが少し古いF4Vコンテナの方でも定義されちゃっているのです。
(こっちも登録こそしてませんが、f4v というbrandの元で定義されているので遙かにマシです。)
これがuuidを利用したチャプターなら問題なかったんですが...
一方でApple形式のチャプターはmp4raに登録されているので、mp4ra的にはM4A かM4B がbrandにあれば規格的に問題無いのです。

一応、テキストトラックということなので、お馬鹿なソフトウェアやデバイスによっては、Apple形式のチャプターが字幕として表示されてしまうことはあるかもしれません。

今更気付いたが、 -ab M4V じゃダメで、 -ab "M4V " にしないといけないんだな... $20のスペースが憎い。

Re: No title

解説ありがとうございます。
参考にしてチャプターの処理を考え直してみます。

にしても --brandとか-abって4文字縛り(?)…知らなかった。
mp4boxはほんと難しい。


No title

brandは必ずFourCC (Four Character Code)になります。
これはMP4Box固有ではなくて、ISO Base Media (14496-12)における仕様です。
各brandが32bit fieldを使いますので。
空白(スペース)は0x00ではなく、0x20を使うのが通例です。
-ab M4V にしたら、最後の文字が0x00になって焦った。

-abはcompatible brandsの指定で、互換のあるファイルフォーマットは何か?を伝えるものです。
-brand mp42 は best usedなファイルフォーマットがMP4 version 2ですよー。って宣言したことになります。
-ab "M4V " を加えると Apple MP4にも互換があります。Apple MP4の機能も備えてますって意味になります。
-ab 3gp6って加えるとと 3GPP release6にも互換があります~って意味になります。

mp4boxでは何でもかんでも加えられちゃうので、乱用は危険です。
規格の間で非互換な機能があった場合に両方のbrandを加えるのは規格違反です。

No title

初めまして、勝手ながらいつもお世話になっております。

最新のx264guiEXを使用させて頂いているのですが、
H.264 Levelを4以上でエンコードすると、動画をアップロードしたときに映像が乱れてしまいます。設定等に特に問題はないと思うのですが、環境のせいでしょうか。
以前のguiEXを使用させて頂いていたときにはこのようなことはなかったのですが…。

環境はWin7,64bitです。 
以前のバージョンはもう配布されてないんですよね…。

No title

申し訳ありません。
自己解決しました。どうやらサイトの状態が悪いときにアップロードしてしまったためのようです。
ご迷惑をおかけしました。

No title

>higeさん
設定内容が書かれていないので全く見当違いかもしれませんが、
SDサイズの動画でveryslowプリセットをベースに設定してるようなときに
Level4を指定したりするとref=16になってしまい、Intel系のGPUで
FlashPlayerのハードウェアアクセラレーションを有効にしてると
映像が乱れたりするみたいですよ。

私事ですがこれまでニコニコに上げるくらいで再生互換性とか全く考えていなかったので
URL欄の記事にて情報募集中です。(´・ω・`)

No title

>mp4box
-brandと-abの違いはそういうことなのですか…にしてもmp4boxは注意して使わないといけないですね。

>DXVA
GPUによって、またドライバによって大きく変わるので難しいですね。AMDのHD4350だと解像度によって使用できるLevel(というかref)に上限があって、それを超えると見事にモザイクになったりしました。あれはAMD共通なんだろうか…
NVIDIAのGPUはわりと問題が起こることが少ないような気がします。

iPhone(iPad)での再生

rigayaさま、おじゃまします。
x264guiExを使わせていただいています。
有用なツールをありがとうございます。

放送波TS→MP4で困っているので教えて下さい。

当方のMP4再生環境がPS3とiPhone4S, iPad2で、これらで再生可能なMP4を作るのが目的です。

d2v作成しaacfawで音声読み込み後、カット編集しx264guiExで出力の流れで作るとPCとPS3では再生上問題ありませんが、iPhone, iPadで音声が再生されないです。

いろいろググッて調べてみるとiOSデバイスはMP4コンテナ内のMPEG2-AACを再生してくれないようでした。

解決策として下のページ
http://webcache.googleusercontent.com/search?q=cache:7_sRfvTXpjEJ:haco.mydns.jp/DTV/+x264guiex+faw+iphone&cd=19&hl=ja&ct=clnk&gl=jp
を見つけたので、これの
>tc2mp4_cmd=" -i "%vid" %au -o "%out" %ex %tc -O " %tmp " "
>    ↓
>tc2mp4_cmd=" -i "%vid" %au -o "%out" %ex %tc -O "-mpeg4" " %tmp " "
を参考に
base_cmd=" -i "%{vidpath}" %{au_cmd} -o "%{muxout}" %{tc_cmd} -O "-mpeg4" " %{ex_cmd} %{tmp_cmd} ""
としてみてエラーなく終了するのですが、今のところ改善されていません。

tc2mp4の使い方もいろいろググッてみたのですが、これ以上のことがわかりませんでした。

これについてなにか良い方法があったら教えていただけると幸いです。

Re: iPhone(iPad)での再生

Apple製品で音声がでない…わたしもはまりました。

MPEG2-AACなのかMPEG4-AACなのかということで再生できないのではないように思われます。

Apple製品はなぜか動画に関しては
音声はAAC-LC 160kbps以下という制限があります。
http://www.apple.com/jp/iphone/iphone-4/specs.html

音声だけなら 8~320kbps なんですけどね…

TSの音声は最近192kbpsや256kbpsが主流なので、
残念ながら無劣化コピーだとApple製品で再生できない可能性が高いです。

一度160kbps以下(もういっそ128kbpsとか)に音声再エンコするしかないのではないかと思います。

No title

rigayaさま
返信有り難うございました。

ご指摘の点をテストして見るため、AACを一旦WAVに変換し、
x264guiExからの出力時にAACに再変換して見ました。
(エンコードはNero Q-Based AAC 320~kbpsで行いました)

結果から行くと160kbpsを大きく超えてもiPad2およびiPhone4Sで正常に再生されるようでした。(1分ほどの短いテストファイルでは大丈夫でした)

参考までにテストファイルのデータを貼ります。

[wavtest.mp4]
1920x1080 8Bit AVC/H.264 High@4.1 Unspecified 29.94fps 1669f 2977.97kb/s
AAC 48.00kHz 2.0ch(2/0 L+R) HE(LC) 282.98kb/s
MP4 Base Media v1
[MPEG4] 00:00:55.743 (55.743sec) / 22,751,002Bytes

真空波動研SuperLite 110813 / DLL 110813 Unicode

ということでやはりMPEG2-AACとMPEG4-AACの違いのような気がします。

試しに先にWAVファイルをNeroでAAC化して、aacfawで読み込ませようともしたのですが、AVIUtlウインドウ上のオーディオ波形が全くフラットでMP4に出力しても音声が含まれていないようでした。
FAWはMPEG2-AACにしか対応していないのかもしれません。

一旦WAV化すれば大丈夫なことはわかりましたのでとりあえず大丈夫ですけど、出来れば無劣化も成功させたいです。

なにかお判りのことがあったらお願いします。

Re: No title

-mpeg4 いれたら出来ました…技術仕様を鵜呑みにしてました、すみませんです。

http://cid-6bdd4375ac8933c6.office.live.com/browse.aspx/x264guiEx/test/
に -mpeg4 加えたx264guiEx.iniをおいておきました。

Apple製品用ということなので、mp4 mux設定の「Apple形式に対応」で使用されるコマンドラインの中に"-mpeg4"を入れてありますので、「Apple形式に対応」にチェックをいれて使ってみてください。

No title

無劣化編集後のファイルがiPad2とiPhone4S双方で正常に音声まで再生されることを確認しました。

rigayaさん
迅速な対応有難うございました!
これでとりためたファイルを安心して処理できます。
プロフィール

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR