2

ffmpeg を使用してアップル検証済みの http メディア ストリームを取得しようとしていますが、エラーが発生しています。エラーの例を次に示します。

警告: プレイリストのコンテンツ タイプは「application/x-mpegurl」ですが、「application/vnd.apple.mpegurl」、「audio/x-mpegurl」、または「audio/mpegurl」のいずれかにする必要があります。

警告: 258 サンプル (88.966 %) は、トラック 256 (avc1) にタイムスタンプがありません。4: us2-1.ts ~~~~~~~~

警告: メディア セグメントの長さが、予想される長さから 47.733 % (5.23 秒対 10.00 秒、制限は 20 %) 外れています。40: us2-19.ts ~~~~~~~~~

Average segment duration: 10.16 seconds
Average segment bitrate: 320.12 kbit/s
Average segment structural overhead: 175.89 kbit/s (54.94 %)

Video codec: avc1
Video resolution: 320x320 pixels
Video frame rate: 29.72, 29.78, 29.82, 30.00, 29.64 fps
Average video bitrate: 100.66 kbit/s
H.264 profile: Baseline
H.264 level: 3.0

Audio codec: aac 
Audio sample rate: 48000 Hz
Average audio bitrate: 43.57 kbit/s

これが私が提出した最後のファイルです: http://files.chesscomfiles.com/images_users/using/us2.m3u8

これを作成するために使用したファイルは次のとおりです: http://files.chesscomfiles.com/images_users/using/using-computers-1.mp4

とりわけ、これらのコマンドを試しました:

ffmpeg -i using-computers-1.mp4 -f mpegts -acodec libfaac -ar 48000 -ab 64k -s 320x320 -vcodec libx264 -vbsf h264_mp4toannexb -b 96k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 2 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 96k -bufsize 96k -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -レベル 30 -g 30 -async 2 us2.ts

ffmpeg -i using-computers-1.mp4 -f mpegts -acodec libfaac -ar 48000 -ab 64k -s 320x320 -vcodec libx264 -vbsf h264_mp4toannexb -b 96k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 96k -bufsize 96k -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -レベル 30 -g 30 -async 2 us1.ts

ffmpeg -i using-computers-1.mp4 -vbsf h264_mp4toannexb -acodec コピー -vcodec コピー -f mpegts output.ts

誰かが私が実行すべきffmpegコマンドを理解するのを手伝ってくれるなら、本当に感謝しています!

4

2 に答える 2

4

最初の警告について:

警告: プレイリストのコンテンツ タイプは「application/x-mpegurl」ですが、「application/vnd.apple.mpegurl」、「audio/x-mpegurl」、または「audio/mpegurl」のいずれかにする必要があります。

サーバーのセットアップに起因する可能性があります。このイオン キャノンの投稿の手順 4 の手順に従ってください。

HTTP サーバーを準備する ストリームを表す一連のファイルとストリーム定義ファイル (ts および m3u8) をアップロードします。これらのファイルは、この時点で Web サーバーにアップロードできますが、ファイルが正しくダウンロードされるようにするための重要な手順がもう 1 つあります。それは、MIME タイプの設定です。ストリーミング コンテンツにとって重要な MIME タイプは 2 つあります。

.m3u8 アプリケーション/x-mpegURL

.ts ビデオ/MP2T

Apache を使用している場合は、httpd.conf ファイルに次を追加します。

AddType アプリケーション/x-mpegURL .m3u8

AddType ビデオ/MP2T .ts

lighttpd を使用している場合は、これを構成ファイルに追加する必要があります (他の MIME タイプが定義されている場合は、これらを追加するだけで、設定しないようにしてください)。

mimetype.assign = ( ".m3u8" => "application/x-mpegURL", ".ts" => "video/MP2T" )

于 2010-07-19T19:09:51.523 に答える
2

3 番目の警告について:

警告: メディア セグメントの長さが、予想される長さから 47.733 % (5.23 秒対 10.00 秒、制限は 20 %) 外れています。40: us2-19.ts ~~~~~~~~~

これは通常、セグメントの長さが、プレイリスト (m3u8) でそのセグメントにリストされている長さと異なる場合に発生します。たとえば、以下のプレイリストには 1 つのセグメントがあり、プレイリストによって 10 秒になるようにリストされています。このセグメントの実際の期間があまりにも (20% 以上) 異なる場合、バリデーターは文句を言います。

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, 
med0.ts 
#EXT-X-ENDLIST

通常、プレイリストの最後のセグメントはターゲットとは少し異なるため、この警告は無視できます。

また、原則として、これらの「WARNING」メッセージは無視できますが、「ERROR」メッセージは真剣に受け止める必要があります。

ただし、2 番目の警告はより深刻に見え、Apple からの拒否につながる可能性があります。セグメンター コマンドである可能性があります (mediastreamsegmenter を使用していますか?)。

また、「-vbsf h264_mp4toannexb」は使用していません。そして、「-async 50」を使用しています。

ところで、あなたのプレイリストへのリンクは無効です。

于 2010-07-19T19:23:36.973 に答える