0
我試圖用IMediaWriter將mp4轉換爲ts。視頻編碼成功,但節奏非常高。xuggler中編碼視頻的速度很高
IContainer container = IContainer.make();
container.open(input, IContainer.Type.READ,null);
mediaReader = ToolFactory.makeReader(container);
mediaReader.setBufferedImageTypeToGenerate(BufferedImage.TYPE_3BYTE_BGR);
mediaReader.addListener(new MediaListener());
for(int i=0; i< container.getNumStreams();i++){
if(container.getStream(i).getStreamCoder().getCodecType() == Type.CODEC_TYPE_VIDEO){
FRAME_RATE = container.getStream(i).getFrameRate();
}
else if(container.getStream(i).getStreamCoder().getCodecType() == Type.CODEC_TYPE_AUDIO){
sampleRate = container.getStream(i).getStreamCoder().getSampleRate();
}
}
mediaWriter = ToolFactory.makeWriter(output);
mediaWriter.addVideoStream(0, 0,
FRAME_RATE,
640,480);
startTime = System.nanoTime();
while (mediaReader.readPacket() == null) ;
mediaWriter.close();
mediaReader.close();
監聽
public void onVideoPicture(IVideoPictureEvent event) {
mediaWriter.encodeVideo(0,event.getImage(),System.nanoTime()-startTime, TimeUnit.NANOSECONDS);
}
注:我知道這一點:mediaReader.addListener(mediaWriter)
。但我想像我的代碼手動轉換它。