7

タイム メタデータを .mov または .mp4 ビデオ ファイルに挿入しようとしています。私はそれについてここで読みました:

基本的に、私の問題は、何を試しても、生成された .m3u8 と一連の .ts ファイルがエラーなしで期待どおりに取得されることですが、メタデータが挿入されていないように感じます。

私が何をしているかを詳しく説明しましょう。

最初に、次のようにいくつかの id3 タグを生成します。

id3taggenerator -o tag1.id3 -t "Test"

次に、次の内容を含む「macrofile.txt」というマクロ テキスト ファイルを作成します。

5 id3 tag1.id3

ファイルが改行文字で終わり、各フィールドがタブではなく単一のスペースで区切られていることを確認します。

次に、mediafilesegmenter を使用して、次のようにマクロファイルも含むコマンドで .ts ファイルを含む m3u8 を作成します。

mediafilesegmenter -index-file test.m3u8 -M macrofile.txt -no-floating-point-duration -iframe-index-file none test.mp4

これにより、m3u8 ファイル + 一連の .ts ファイル (ビデオの 10 秒ごとに 1 つの ts) が正常に生成されます。

それらを Web サーバーにアップロードし (もちろん、適切な MIME タイプなどを追加しました)、iOS アプリからストリームを開きます。

NSURL* url = [NSURL URLWithString:@"http://url.com/test.m3u8"];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];

また、次のように MPMoviePlayerTimedMetadataUpdatedNotification 通知を必ず追加します。

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
           selector:@selector(metadataUpdate:)
               name:MPMoviePlayerTimedMetadataUpdatedNotification
             object:nil];

問題は、MPMoviePlayerTimedMetadataUpdatedNotification がトリガーされないことです。

5 秒ごとに時間指定されたメタデータを含むApple テスト ストリーム ( https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8 ) を試してみると、完全に動作します。

これが、生成された .ts ファイルにメタデータが含まれていないか、少なくともどこかで何か間違っていると思い込んでいる理由ですが、できることはすべてチェックしましたが、今はアイデアがありません。

4

2 に答える 2

5

これにもう少し時間を費やした後、Apple Developer Technical Support に連絡することにしました。

これは、mediafilesegmenter ツール 1.1(130110) の最新バージョンのバグです。

バグ レポートにアクセスするための直接リンクは次のとおりです

バグ ID は13178898 です

バグが解決されるか、Apple から回避策が提供され次第、ここで回答を更新します。

于 2013-02-08T08:13:10.373 に答える