🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
バイナリ

バイナリは、「0」と「1」だけで表現されている2進数のデータ形式。または、テキスト以外の情報でデータが記述されているファイルを指します。コンピューター内の処理は全て2進数で表記されています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

1回答

3553閲覧

■mp4ファイルの内部構造について

menya

総合スコア1

バイナリ

バイナリは、「0」と「1」だけで表現されている2進数のデータ形式。または、テキスト以外の情報でデータが記述されているファイルを指します。コンピューター内の処理は全て2進数で表記されています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

1クリップ

投稿2021/03/01 12:36

実現したいこと

お世話になります。
mp4ファイルの内部構造について、お伺いしたいことがございます。
当方、動画ファイルの内部構造について勉強するため、
動画プレイヤーの作成を試みております(mp4ファイルのみ対応)。
そこで、プレイヤーの作成前段階で、「デコード後」のmp4ファイル(バイナリファイル)の内部仕様について
把握する必要があると判断し、質問させて頂いたという経緯でございます。

まず、私が想定している「動画プレイヤーの処理手順」の概要について、以下に記します。

  1. mp4ファイルを読み込む
  2. 外部ライブラリを用いて、mp4ファイルのデコードを行う
  3. デコード後のバイナリファイルを解析し、動画の再生を行う

大まかですが、上記の認識で処理実装を考えております。
そこで、質問させていただきたいのですが、
mp4ファイルのデコード後のバイナリファイルは、どのような構造になっているのでしょうか?
処理手順3. を考える際に、デコード後のファイル構造を把握している必要があると思っているのですが、
Webサイト等で有用な情報を見つけられず困っております。
⇒可能であれば、参考URL等教えていただければ幸いです。

当方の現在の認識では、下記サイトに記載のmp4ファイル構造(BOX、moov、mdatなど)は、
デコード前のファイル構造であり、そこからデコーダにより変換が行われ、
別のバイナリ構造になると考えております。
⇒この時点で認識が違うのであれば、指摘していただきたいです。

【参考サイト】
https://qiita.com/satken2/items/d14b4113fe3fb5f5597b

質問内容が分かりにくく申し訳ございませんが、
ご助力の方をどうかよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaina

2021/03/02 00:49

ご自分が書いた参考サイトの最後辺りに参考URLが書いてあり、 さらにその参考URLの中にもたくさんの参考サイトが掲載されていますが そちらを確認した上での質問ですか? そもそも以下の質問は何を期待しての質問ですか? サイトの内容が信用できない?ちょっと意味が分かりません。 >当方の現在の認識では、下記サイトに記載のmp4ファイル構造(BOX、moov、mdatなど)は、 >デコード前のファイル構造であり、そこからデコーダにより変換が行われ、 >別のバイナリ構造になると考えております。 >⇒この時点で認識が違うのであれば、指摘していただきたいです。
menya

2021/03/02 14:43

qnoirさん 情報連携ありがとうございます! デコードを行うための解析手順の詳細と理解しました。 こちらを参考に実装を進めたいと思います。
menya

2021/03/08 12:59 編集

hoge
guest

回答1

0

ベストアンサー

詳しくないですが、

「デコード後」のmp4ファイル(バイナリファイル)の内部仕様

少なくともデコード後のモノはデコードしたのだからmp4でもないし、ファイルに書き出す理由が無いのでファイルでもないでしょう。
動画ファイルをデコードするライブラリの一般的な動作はおそらく「次の1フレーム分の画像をメモリに書き出して返す」ものだと思います。
そして書き出されたフレームのデータの構造は、ライブラリに依存するでしょう。少なくともデコードされた生データは含まれているでしょうけれど、その他の情報が含まれていたり、ピクセルの並び順が異なっていたり、色情報の持ち方が違っていたりしてもおかしくないです。

投稿2021/03/07 15:23

ikadzuchi

総合スコア3047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

menya

2021/03/08 10:10

ご回答いただきありがとうございます! >動画ファイルをデコードするライブラリの一般的な動作はおそらく「次の1フ>レーム分の画像をメモリに書き出して返す」ものだと思います。 なるほど…デコードに利用するライブラリに依存はすれど、 最終的な出力は画像となるわけですね。 デコードを行うライブラリ周りの情報を、もう少し調べてみようと思います。 有力な情報をいただきまして、感謝いたします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問