MP4BOXを使ってDEMUX→MUXの際AAC音声に問題

このQ&Aのポイント
  • MP4BOXを使ってDEMUX→MUXする際に、AAC音声のTimeScaleとDurationがおかしくなり、時間が約3倍になるという問題が発生しています。
  • 映像の側には対処法が見つかりますが、音声の側には情報がなく困っています。
  • また、素材MP4ファイルの情報と、変換後のMP4ファイルの情報を比較しても、重要な相違点が見つかります。
回答を見る
  • ベストアンサー

MP4BOXを使ってDEMUX→MUXの際AAC音声に問題

素材mp4形式ムービーファイルがある 1.mp4boxでDEMUX 2.映像を縮小再エンコーディング 3.2で再エンコーディングした映像と、1で取り出した音声をMUX ここで、音声のTimeScale ・ Durationがおかしくなり、およそ3倍の時間に変化してしまうという状態です。 映像の方ですとFPS指定などで強制する手段があるようですし、WEBで検索した資料でもそちらの対処法は見つかりました。 しかし今回は映像の側は正しく、音声の側がおかしいという状態で資料がなく困っております。 下記に、元mp4の作成概略と、今回の変換、およびmp4box -infoによる状況を記します。 改善点などの指摘がありましたらよろしくお願いします。 (映像側は問題ないので、主に音声に関する部分のみを記載します) ==以下資料== ※MP4BOXのバージョン MP4Box - GPAC version 0.4.5 (build 33 - Dec 11 2008) - compiled by Kurtnoise GPAC Copyright: (c) Jean Le Feuvre 2000-2005 (c) ENST 2005-200X ※元mp4ファイル作成時 NeroAACEnc 付加したオプション -br 128000 -lc -ignorelength mp4boxにてmp4コンテナに収める MP4Box.exe -add "(入力映像ファイル):fps=30"#video -add "(入力音声ファイル)"#audio -new (出力MP4ファイル) ※縮小再エンコーディング前のDEMUX MP4Box.exe -raw 2 (分離音声ファイル) この時点のxxxx_track2.aacは正常に再生可能 ※再MUX MP4Box.exe -add "(再エンコード映像ファイル):fps=30"#video -add "(分離音声ファイル)"#audio -new (出力MP4ファイル) また、xxxx_track2.aacを一回mp4コンテナに収めてから上記作業を行っても同じ状況になります。 ともかくMP4Boxで分離したaac(rawデータ)をmp4コンテナに収める段階で不具合が発生している模様です。 ※素材MP4ファイルのmp4box -info出力。(注:重要な相違点に『』を付加しています) * Movie Info * Timescale 600 - Duration 00:00:14.303 Fragmented File no - 2 track(s) File Brand isom - version 1 Created: GMT Mon Jan 12 02:13:13 2009 File has root IOD Scene PL 0xff - Graphics PL 0xff - OD PL 0xff Visual PL: AVC/H264 Profile (0x15) Audio PL: AAC Profile @ Level 2 (0x29) No streams included in root OD Chapters: Chapter #1 - 00:00:14.293 - "" Track # 1 Info - TrackID 1 - TimeScale 30000 - Duration 00:00:14.266 Media Info: Language "Undetermined" - Type "vide:avc1" - 428 samples MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21 AVC/H264 Video - Visual Size 1024 x 768 - Profile High @ Level 4 NAL Unit length bits: 32 Pixel Aspect Ratio 1:1 - Indicated track size 1024 x 768 Self-synchronized Track # 2 Info - TrackID 2 - TimeScale 『96000』 - Duration 『00:00:14.304』 Media Info: Language "Undetermined" - Type "soun:mp4a" - 1341 samples MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40 MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 96000 Synchronized on stream 1 ※結果MP4ファイルのmp4box -info出力。(注:重要な相違点に『』を付加しています) * Movie Info * Timescale 600 - Duration 00:00:45.075 Fragmented File no - 2 track(s) File Brand isom - version 1 Created: GMT Sat Jan 31 02:37:39 2009 File has root IOD Scene PL 0xff - Graphics PL 0xff - OD PL 0xff Visual PL: AVC/H264 Profile (0x15) Audio PL: AAC Profile @ Level 2 (0x29) No streams included in root OD Track # 1 Info - TrackID 1 - TimeScale 30000 - Duration 00:00:14.300 Media Info: Language "Undetermined" - Type "vide:avc1" - 429 samples MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21 AVC/H264 Video - Visual Size 360 x 272 - Profile Main @ Level 3 NAL Unit length bits: 32 Pixel Aspect Ratio 136:135 - Indicated track size 362 x 272 Self-synchronized Track # 2 Info - TrackID 2 - TimeScale 『30464』 - Duration 『00:00:45.075』 Media Info: Language "Undetermined" - Type "soun:mp4a" - 1341 samples MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40 MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 96000 Synchronized on stream 1 注:映像を納めず、音声aac(raw)データをMP4コンテナに収めただけでも同じ症状になります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

原因は GPAC (MP4Box のバックエンド) のバグ。 本来 32ビットで扱うべき値を 16ビットで処理している。(単純なミス) ので、65536Hz 以上のサンプルレート値を保持できない。 TimeScale が 30464 (96000 - 65536) となるのはそのため。 Duration は誤った TimeScale を元に計算されるから約 3倍 (96000 ÷ 30464) になる。 とりあえずの対処法は… mp4box -single 2 xxxx.mp4 で Demux。 AAC 音声は RAW ではなく MP4 コンテナに収められた状態で分離される。 それを -add xxxx_track2.mp4 として Mux。

heinell
質問者

お礼

明確な回答ありがとうございます。 今晩にでもこちらの対処を試してみようと思います。

heinell
質問者

補足

すみませんお礼返答の順番を間違えてしまいました。 こちらはお礼文に対する補足となります。 試してみたところ無事動作を確認いたしました。 貴重な情報ありがとうございました。

関連するQ&A

  • .AACと.MP4の結合について

    お世話になります。 先日僕の一本の動画が、わけも分からず、二つのファイルになっていました。.AACと.MP4の二つのファイルになっていました。二つのファイルもちゃんとQuick Time Playerで流せます。ですが、.MP4のほうは映像だけで、.AACのほうは音声だけです。どうにか、なりませんか。音声と映像ばらばらじゃ使い物になりません。結合の仕方を教えてください。 長文失礼しました、お願いします。

    • 締切済み
    • Mac
  • MP3をAACに変換できない?

    Mac上の動画をケータイで見ようと、 QuickTime Player7.5.5で、拡張子「3gp」に変換しました。 ケータイに持っていくと、 音声が出ないものがいくつかありました。 (ビデオは再生されます。無音状態) Mac上で再確認すると、Mac上でも映像のみで音声が出ません。 (変換前は、問題なく音声が出るムービーです) QuickTime Playerでムービーのプロパティを表示させると、 変換前のサウンドトラックが「MPEG Layer 3」のモノがNGでした。 (変換前も「AAC」のモノはOKでした) 「3gp」に変換すると、 「AAC」のサウンドトラックができているものの、 中身が無音のようです。再生時間はあります。ゼロ分ではありません。  ×「MPEG Layer 3」→「AAC」  ○「AAC」→「AAC」 QuickTime Playerだけで、MP3をAACに変換するのは不可でしょうか? Flip4Mac WMV2.2.1.11、Perian1.1.1はインストール済みです。 よろしくお願いします<(_ _)>

    • 締切済み
    • Mac
  • バッチで外部プログラムの出力を変数に格納

    tsmuxer で複数の mp4 (コンテナ)ファイルを m2ts に変換(remux)する作業を、バッチで行おうとしています。 mp4 に格納されている情報(解像度、fps など)を tsmuxer で出力し、その情報を元に tsmuxer 用の meta ファイルを出力することを考えています。 tsmuxer での出力は以下のようになるのですが、 ------------------------------------------------------------ >tsmuxer hoge.mp4 SmartLabs tsMuxeR. Version 1.10.6 http://www.smlabs.net Track ID: 1 Stream type: H.264 Stream ID: V_MPEG4/ISO/AVC Stream info: Profile: High@3.0 Resolution: 720:480p Frame rate: 29.97 Stream lang: eng Track ID: 2 Stream type: AAC Stream ID: A_AAC Stream info: Sample Rate: 48KHz Channels: 2 Stream lang: jpn ------------------------------------------------------------ この情報から、Resolution、Frame rate などを取り出し、変数に格納するにはどうしたらよいでしょうか?

  • MP4ビデオのプロファイルについて

    とある知人から貰ったMKVファイルをPlayStation3で観られるようにMP4に変換することを考えています。 変換しなおすのは時間がかかるので、音声と映像ストリームを分離してMP4コンテナに結合しようとしました。 が、映像ストリームがまさかのMPEG4-AVC Profile:High 10@Level 5.0 でした! Level 5.0って…orz そこで質問です。 バイナリエディッタを使うと映像ストリームのプロファイルレベルの値を変更できると聞きました。 ですが、その辺りの知識には乏しいので方法を知っている方がいましたら教えてください。 それと…、 元のMKVファイルの音声はaac、映像はAVC1920x1080なのでプロファイルレベル4.1で許容できるの考えているのですが、エディッタで無理やりプロファイルを変更した映像データは問題なく再生できるのでしょうか? よろしくお願いします!

  • h264 aac .mp4 が再生できない

    h264 aac .mp4 のファイルが再生出来ません。ffdshowやDivxを入れたのですが再生できませんでした。 プレイヤーはQuick time と jet Audio player,,media player classic を試しましたがどれもダメでした。音声だけは再生できるのですが・・

  • MP3、AAC、WAV 軽いのは?

    MP3、AAC、WAVをファイルサイズが小さい順に並べていただきたいです。 それと、そのサイズはやはりデジタルオーディオ等に入れる際も影響しますか?

  • AACをMP3に変換

    最近Winamp&StreamRipperでインターネットラジオから 曲をパソコンに取り込んでいます。 その取り込んだ曲をオーディオ機器で再生したり ポータブル機器で持ち運んだりしたいのですが ラジオで流している曲の形式がAACなのでAACで 保存されてしまい、私のうちにはAACに対応している 機器がないのでMP3に変換したいと思いiTuneなども DLしてみましたが、まずiTuneにそのAACファイルが 読み込まれないのでどうしようもなく困っています。 ついでにWinampでしか再生もできません。 なにかAACからMP3に変換できるものはないでしょうか?

  • WMP11でMP4の再生ができない

    WindowsMediaPlayer11でMP4を再生すると 「ファイルのダウンロード中にWindowsMediaPlayerに問題が発生しました」と出て再生出来ません。 拡張子を.aviに変更してみたらWMPでも再生可能でした。 MMname でファイルを調べたら ■映像情報 (ストリーム数 1) 1)コーデック:H.264/AVC / Code:avc1 / 略号:H.264 / 320x240 24bit 10fps ■音声情報 (ストリーム数 1) 1)コーデック:MPEG4 Audio / Code:mp4a / 略号: / 16 22.05KHz 118.5Kbps 2ch stereo(L+R) VBR HE-AAC ■字幕情報 (ストリーム数 0) ■コメント情報 (情報数 2) 1)ftyp MajorBrandType isom 2)ftyp MinorBrandTypes isom ■DirectShow情報 スプリッタ:MPC - MP4 Splitter 08E22ADA-B715-45ED-9D20-7B87750301D4 映像デコーダ:ffdshow Video Decoder 31637661-0000-0010-8000-00AA00389B71 FourCC avc1 音声デコーダ:ffdshow Audio Decoder 000000FF-0000-0010-8000-00AA00389B71 FourCC と出ました。 出来ればMP4形式のままWMPで読み込みをしたいです。 解決方法などアドバイスがあればお願いいたします。 使用OSはWindowsXP SP3です。

  • .mp4 から音声を取り除いて映像だけを残す方法

    動画から音声だけを削って画像のみを残す方法を探しています。 以前は mp4muxer を使用していましたが、音声部分除去後に映像の時間制御が不具合を起こすトラブルが起きるため、代わりのフリーウェアを探しています。 画像の劣化が起きない安定したフリーウェアがあれば、ご推奨をお願いいたします。 参考までに、主に使用する MP4ファイルは、 AVC/H.264 の画像要素を用いています。 よろしくお願いいたします。

  • mp4の音声均一化について

    「MP3Gain」と「AACGain」を組み合わせてのmp4の音量調整ができません。 mp4のファイルを取り込もうとすると、「aacgainは動作を停止しました」というエラーメッセージが表示され、「プログラムの終了」をクリックすると「パス/ファイル」にmp4のファイル名が表示され、「トラック分析」や「トラックゲイン」をクリックすると「分析中」が出て再び「aacgainは動作を停止しました」が出て「プログラムの終了」をクリックすると「1エラーが発生しました」が表示されます。 mp3gain-win-1_2_5はファイルが不足しているらしいので、mp3gain-win-full-1_3_4を使ってみましたが 同じ状態です。AACGainはV1.9で、mp4の音声フォーマットはLC-AACです。 PCは7 Home Premium Service Pack 1です。 ご教示のほどよろしくお願いします。

専門家に質問してみよう