問題:
カスタムプレーヤーでのみ再生できるビデオファイルがたくさんあります。ビデオを一般的なメディアプレーヤー(VLCやMPCなど)で再生できるように、リバースエンジニアリングしたいと思います。
これまでに発見したこと:
ファイルをプローブすると、それらが Matroska Mediaコンテナ によって使用されるEBMLタイプであることが明らかになりました。
そこで、ファイル拡張子を.mkvに変更し、 MKVToolNix および [〜# 〜] ffmpeg [〜#〜] 。
MKVToolNixプローブにより、h.264でエンコードされたビデオトラックとAC3エンコードでエンコードされたオーディオトラックがあることが明らかになりました。
ただし、「トラックタイプ」タグを意図的に変更することにより、オーディオトラックはビデオとして「マーク」され、ビデオトラックはオーディオとして「マーク」されていました。
MKVToolNixトラック情報のスクリーンショット:
[matroska、webm @ 0x7f966c800a00] avformat_find_stream_infoでコーデックを開くことができませんでした
[h264 @ 0x7f966c811a00]コーデックタイプまたはIDの不一致
[ac3 @ 0x7f966c812600]コーデックタイプまたはIDの不一致[matroska、webm @ 0x7f966c800a00]ストリーム0のコーデックパラメータが見つかりませんでした(オーディオ:h264(高)、0チャネル):サンプルレートが指定されていません「analyzeduration」および「probesize」オプションの値を増やすことを検討してください
[matroska、webm @ 0x7f966c800a00]ストリーム1のコーデックパラメーターが見つかりませんでした(ビデオ:ac3、なし、192 kb/s):サイズが指定されていません「analyzeduration」および「probesize」オプションの値を増やすことを検討してください
(編集済み)
継続時間:01:46:42.00、開始:0.035000、ビットレート:2629 kb/s
...ストリーム#0:0(eng):オーディオ:h264(高)、0チャンネル(デフォルト)ストリーム#0:1(eng):ビデオ:ac3、なし、192 kb/s、31.25 fps、31.25 tbr、1k tbn、1k tbc(デフォルト)
疑問:
Matroskaコンテナを編集して、メディアトラックの「トラックタイプ」タグを変更することは可能ですか?
ffmpegを使用して、ビデオトラックとオーディオトラックの両方に正しい入力コーデックを指定し、それらを抽出することは可能ですか(できれば再エンコードせずに)?
Matroskaファイルの「トラックタイプ」の値を簡単に変更できるEBMLエディターまたはMatroskaMediaコンテナーエディターを提出できませんでした。
したがって、バイナリファイルを直接編集するために16進エディタを使用することになりました。 MKVToolNixがなければ、時間のかかる作業でした。 MKVToolNix情報ツールに、Matroskaファイル内の(タグの)データの位置を指定する便利な機能が含まれるようになりました。
それによると、「トラックタイプ:オーディオ」は位置414にあり、「トラックタイプ:ビデオ」は位置532にあります。 Matroskaファイル内。
MKVToolNix情報ビューのスクリーンショット:
16進エディタでファイルを開いた後、MKVToolNixInfoが指す位置でデータを検索するだけです。スクリーンショット:
位置414にデータが含まれていることがわかります83 81 02
(audio-タグ 'トラックタイプ')の場合、位置532にはデータがあります83 81 01
(video-タグ用 'トラックタイプ')。したがって、このデータを交換して置き換える必要があります。
( Synalyze It!Pro for macOS-試用版を使用しました-16進編集をとても簡単にするために!)