0

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

エラー:(-12971)MPEG2パーサーの破損したストリーム(プログラム1、トラック257)エラー:(-12971)セグメントをMPEG-2TSまたはESとして解析できませんでした

それらを.tsではなく.mp4として保存すると、Quicktimeで再生されます(ただし、.tsとしては再生されません)。

ICodec.ID.CODEC_ID_H264を使用すると、エンコード時に次のエラーが発生します。

java.lang.RuntimeException:ストリームcom.xuggle.xuggler.IStream @ -397916640 [index:0; id:1; streamcoder:com.xuggle.xuggler.IStreamCoder @ -397916528 [codec=com.xuggle.xugglerを開くことができませんでした。 ICodec @ -397916032 [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;]:操作は許可されていません

エンコーダーには次の設定があります。

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

私は何か間違ったことをしたのだろうかと思っています。ビデオエンコーディングの多くを知らないので、H264にエンコードしようとしたときに簡単なオプションを忘れた可能性があります。

4

2 に答える 2

1

この問題は、Xuggler5.5の新しいバージョンで修正されています。ただし、H264エンコーダーを指定した場合でも(拡張子に基づいて)mpeg2tsエンコーダーを使用したようです。これにより、QTおよびiOSデバイスで問題が発生します。

FFMPEGを直接使用すると、より多くの制御ができるため、多少うまくいく可能性があります。

于 2012-05-01T19:45:57.967 に答える
0

xugglerは要件ですか?そうでない場合は、ffmpeg(xugglerのベース)を使用して、たとえばこれらの手順でアセットを準備することができます。

于 2012-04-24T15:49:07.120 に答える