将视频转码为较低的比特率和流

时间:2016-08-07 04:56:58

标签: android mediacodec

我有一个可以将视频流式传输到Chromecast的应用程序(使用nannoHttpd),一切正常。现在我的问题是:使用新设备录制的视频太大而无法播放,因此我想将视频重新编码为较低的比特率。

我尝试了ffmpeg但结果并不令人满意,它会将apk大小增加14 MB。

现在我正在尝试MediaCodec api。它比ffmpeg更快,但它接受输入文件并将其写入输出文件,我想重新编码由nannohttpd提供的字节数据。

现在我想到了一个解决方案,即转码视频并流式传输输出文件,但它有两个缺点;

  1. 如果文件太大且用户没有看到整个视频怎么办?大部分CPU,电池资源都被浪费了。
  2. 如果用户快速将长视频转发到未重新编码的时间怎么办?

1 个答案:

答案 0 :(得分:1)

1 MediaCodec只做一件事解码编码!并且您将获得新的编码数据的原始字节。因此,程序员可以选择使用多路复用器将其转储到容器(.mp4文件)中。因此,这里不需要将所有内容重写回文件。

2寻找正确的数据块并重新启动MediaCodec。