对最近Android项目中的视频编解码的总结

最近的项目是一个智能摄像头的项目,对于我们Android客户端来讲,肯定核心的是就是音视频编解码了。对于硬件端,也就是摄像头端,在我接手项目的时候,他们都已经订好了技术方案。往客户端(iOS,Android,PC)三端传输的数据是音视频分开的。音频通过G711u,视频通过H264。我们客户端这边需要做的就是解码H264拿到未压缩的视频帧,和转码G711u到PCM可以播放 ***

视频解码,一开始由于项目紧张,人员也比较缺,这边没有懂视频的解码。所以当时就随便在网络上搜罗了一个H264的解码器(只有SO库),没想到的是竟然可以用。所以本着互联网思维(这里省略100个呵呵),我们就临时用了这个解码器,虽然效果不理想但是还算可以用。后来到了项目中期,我们开始自己学习写解码器。这里推荐三个搭建Android Stuido 搭建NDK开发环境的文章。

  1. 超级简单的Android Studio jni 实现(无需命令行)
  2. Android Studio使用gradle-experimental构建NDK工程(无需Android.mk、Application.mk文件)
  3. Android Studio NDk调试(基于gradle-experimental插件与LLDB)

下面是我的Gradle的配置,供大家参考

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"

        defaultConfig.with {
            applicationId "liufei.person.ffmpegproject"
            minSdkVersion.apiLevel = 15
            targetSdkVersion.apiLevel = 23
        }
    }
    android.ndk {
        moduleName = "MyLibrary"
        ldLibs.addAll(['android', 'log'])
    }

    repositories {
        MyLibrary(PrebuiltLibraries) {

            ffmpeg {
                binaries.withType(SharedLibraryBinary) {
                    sharedLibraryFile = file("src/main/jni/libffmpeg.so");
                }
            }
        }
    }
    android.productFlavors {
        create("arm") {
            ndk.abiFilters.add("armeabi")
        }
        create("arm7") {
            ndk.abiFilters.add("armeabi-v7a")
        }
        // To include all cpu architectures, leaves abiFilters emptycreate("all")
    }
    android.sources {
        main {
            jni {
                exportedHeaders  {
                    srcDir "src/main/jni/include"
                }
                dependencies{
                    library "ffmpeg"

                }
            }
        }
    }
    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles.add(file('proguard-rules.txt'))
        }
    }

}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:cardview-v7:23.
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值