0

HTTPライブストリーミングに使用するメディアファイルをエンコードしようとしていますが、これまでのところ運があまりありません。私は、ストリームのエンコードICodec.ID.CODEC_ID_MPEG2TSまたはICodec.ID.CODEC_ID_MPEG4コードを使用するが、私はAppleの検証ツールを使用して、エラーを取得する場合:HTTPライブストリーミング用のH264を使用してエンコードしようとしています

ERROR: (-12971) MPEG2 parser corrupt stream (program 1, track 257) ERROR: (-12971) failed to parse segment as either an MPEG-2 TS or an ES

私が代わりに.TSの.MP4として保存した場合、その後、彼らは遊びますクイックタイムで(ただし.TSとして)私はICodec.ID.CODEC_ID_H264を使用している場合

エンコードするとき、私は次のエラーを取得する:

java.lang.RuntimeException: could not open stream [email protected][index:0;id:1;streamcoder:[email protected][[email protected][type=CODEC_TYPE_VIDEO;id=CODEC_ID_H264;name=libx264;];time base=1/25;frame rate=0/0;pixel type=YUV420P;width=640;height=360;];framerate:0/0;timebase:1/90000;direction:OUTBOUND;]: Operation not permitted

私は、エンコーダの以下の設定があります。

 coderSettings.width = 640; 
     coderSettings.height = 360; 
     coderSettings.bitRate = 700000; 
     coderSettings.codec = ICodec.ID.CODEC_ID_H264; 
     coderSettings.globalQuality = 75; 
     coderSettings.sampleRate = 22050; 

私は何か間違っているのかどうか疑問に思っています。私はそれほど多くのビデオエンコーディングを知らないので、H264にエンコードしようとすると単純なオプションを忘れてしまうかもしれません。

答えて

1

この問題は、Xuggler 5.5の新しいバージョンで修正されています。しかし、H264エンコーダを指定しても、拡張子に基づいてmpeg2tsエンコーダを使用したようです。これは、QTやiOSデバイスに問題をもたらします。

FFMPEGを直接使用すると、よりコントロールがあるように多少改善される場合があります。

0

xugglerは必須ですか?そうでない場合は、these instructionsなどのffmpeg(xugglerのベース)を使用してアセットを準備することができます。

+0

ありがとうございました。でも、Xugglerを使用することで、オンザフライでセグメント化することができ、エンコードの進捗状況をよりよく追跡できます。 –

+0

ffmpegの新しいバージョンは、オンザフライでセグメント化することができますが、Xugglerでエンコードの進行状況を追跡する方が簡単だと思います。 – vipw

+0

これはどのバージョンでサポートされているのですか?私はSVNをチェックアウトしてビルドしましたが、セグメントオプションは不明です。私は多かれ少なかれFFMPEGを直接使用するよう動いています.Xugglerはエンコーダに関しては、あなたが望むものを正確に行うのが非常に複雑であるようです。 –

関連する問題