Java mp4压缩视频播放时间过长(exoplayer)
视频(mp4)从android摄像头录制并发送到后端,这里我使用ffmpeg包装器压缩视频[44mb视频到5.76mb]。压缩效果很好,但当我在android(exo播放器)上发送视频播放时,启动时间太长了 下面是我要压缩的代码:Java mp4压缩视频播放时间过长(exoplayer),java,android,video,ffmpeg,exoplayer,Java,Android,Video,Ffmpeg,Exoplayer,视频(mp4)从android摄像头录制并发送到后端,这里我使用ffmpeg包装器压缩视频[44mb视频到5.76mb]。压缩效果很好,但当我在android(exo播放器)上发送视频播放时,启动时间太长了 下面是我要压缩的代码: FFmpegBuilder builder = new FFmpegBuilder() .setInput("D:/dummyVideos/myvideo.mp4") // Filename, or a FFmpegPr
FFmpegBuilder builder = new FFmpegBuilder()
.setInput("D:/dummyVideos/myvideo.mp4") // Filename, or a FFmpegProbeResult
.overrideOutputFiles(true) // Override the output if it exists
.addOutput("D:/dummyVideos/myvideo_ffmpeg.mp4") // Filename for the destination
.setFormat("mp4") // Format is inferred from filename, or can be set
.disableSubtitle() // No subtiles
.setAudioChannels(1) // Mono audio
.setAudioCodec("aac") // using the aac codec
.setAudioSampleRate(48_000) // at 48KHz
.setAudioBitRate(32768) // at 32 kbit/s
.setVideoCodec("libx264") // Video using x264
.setVideoFrameRate(24, 1) // at 24 frames per second
.setVideoResolution(1280, 720) // at 640x480 resolution
.setVideoBitRate(762800)
.setStrict(FFmpegBuilder.Strict.EXPERIMENTAL) // Allow FFmpeg to use experimental specs
.done();
有人能告诉我为什么在exo player中播放视频花费的时间太长吗?压缩有什么问题吗?根据我在这里写的评论,因为“moov”atom视频需要很长时间才能播放,下面是描述的博客: 代码是:
try{
QtFastStart.fastStart(inputFile, outputFile); // Adds moov to your input
// Now your output file is ready to stream!
}catch (QtFastStart.MalformedFileException m){
logger.error("QT", m);
}catch (QtFastStart.UnsupportedFileException q){
logger.error("QT", q);
}catch (IOException i){
logger.error("QT", i);
}
将-movflags faststart添加到您的ffmpeg命令中。或者,如果您不想重新编码所有内容,只需使用
-movflags+faststart
:ffmpeg-i input.mp4-map 0-c copy-movflags+faststart output.mp4
重新使用即可。请写这封信作为我接受的答复。