Мое java-приложение использует xuggle для записи видео с веб-камеры. Когда я использую расширение ".ts", видео может воспроизводиться правильно.
Но я бы хотел записать видео в расширении ".mp4". Когда я меняю расширение, проигрыватель, воспроизводящий записанное видео, говорит, что файл поврежден
Ты знаешь, что может случиться?
Заранее спасибо
public StreamServerAgent(Webcam webcam, Dimension dimension, String pathOutputVideo) {
String filename = pathOutputVideo + File.separator + "output-" + new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".mp4";
IMediaWriter writer = ToolFactory.makeWriter(filename);
Dimension size = WebcamResolution.QVGA.getSize();
writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_H264, size.width, size.height);
this.webcam = webcam;
this.dimension = dimension;
this.serverBootstrap = new ServerBootstrap();
this.serverBootstrap.setFactory(new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));
this.streamServerListener = new StreamServerListenerIMPL();
this.serverBootstrap.setPipelineFactory(new StreamServerChannelPipelineFactory(this.streamServerListener, dimension));
this.timeWorker = new ScheduledThreadPoolExecutor(1);
this.encodeWorker = Executors.newSingleThreadExecutor();
this.h264StreamEncoder = new H264StreamEncoder(dimension, false, writer);
this.secondEncoder = new H264StreamEncoder(dimension, false, writer);
AudioFormat format = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
44100.0F, 16, 2, 4, 44100, false);
this.line = null;
// format is an AudioFormat object
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
if (!AudioSystem.isLineSupported(info)) {
System.out.println("Error, line not supported");
}
// Obtain and open the line.
try {
this.line = (TargetDataLine) AudioSystem.getLine(info);
this.line.open(format);
} catch (LineUnavailableException ex) {
ex.printStackTrace();
}
this.line.start();
}