gpt4 book ai didi

java - 压缩的 mp4 视频播放时间过长(exoplayer)

转载 作者:行者123 更新时间:2023-12-04 23:25:35 24 4
gpt4 key购买 nike

视频(mp4)是从 android 相机录制并发送到后端,这里我使用 ffmpeg 包装器来压缩视频[44mb 视频到 5.76mb]。压缩效果很好,但是当我发送视频在 android(exo 播放器)中播放时,启动时间太长。

下面是我要压缩的代码:

 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 播放器中播放时间过长?压缩有什么问题吗?

最佳答案

根据我在这里写的评论,由于“moov”原子视频需要很长时间才能播放,这里是描述的博客:https://rigor.com/blog/2016/01/optimizing-mp4-video-for-fast-streaming

代码是:

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);
}

关于java - 压缩的 mp4 视频播放时间过长(exoplayer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50168529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com