java - 压缩的 mp4 视频播放时间过长(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 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/

相关文章:

android - 显示服务中的相机表面

flash - 削减嵌入式视频的声音

video - 在Windows Phone中向YouTube播放器添加播放,暂停,停止和进度栏

Java Selenium ChromeDriver SendKeys 真的很慢

java - Admob 不显示测试广告不是真实广告

java - 有没有办法使用 Perl 或 Java 将内容发布到 Drupal 站点?

java - 将 OpenGL 与 LWJGL 结合使用不会生成图片

android - 您知道任何支持多设备的 Android 动态检测工具(最好是 Python 或 Jython)吗?

android 在按下 fragmentActivity(FragmentB) 的后退按钮时隐藏 fragment

javascript - Node.js EasyRTC 视频录制