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にエンコードしようとしたときに簡単なオプションを忘れた可能性があります。