1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        HardwareVideoCodec高效的 Android 音視頻編碼庫

        聯(lián)合創(chuàng)作 · 2023-09-29 19:58

        HardwareVideoCodec是一個高效的Android音視頻編碼庫,支持軟編和硬編。使用它你可以很容易的實現(xiàn)任何分辨率的視頻編碼,無需關(guān)心攝像頭預(yù)覽大小。一切都如此簡單。目前已迭代多個穩(wěn)定版本,歡迎查閱學(xué)習(xí)和使用,如有BUG或建議,歡迎提Issue。

        一、簡介

        HardwareVideoCodec是個高性能、易用的Android音視頻編碼開源庫,支持多款濾鏡,支持RTMP直播推流,以及軟編和硬編。硬編性能較好,在高通630的中端機(jī)子上實測1080p、30fps毫無問題。軟編性能差一點,同樣的機(jī)子,軟編只能達(dá)到720p、24fps。硬編性能較好,軟編兼容性較好,這個需要根據(jù)的業(yè)務(wù)需求進(jìn)行選擇。

        HardwareVideoCodec目前已經(jīng)迭代到了1.6.3版本,更新了新的美顏濾鏡,美顏更出色,更有40+濾鏡庫。支持RTMP推流,實測1080p、30fps局域網(wǎng)推流毫無性能壓力。以下是主要的特性:

        1. 支持高性能的RTMP直播推流。

        2. 支持在不重啟Camera的基礎(chǔ)上,熱切換畫面分辨率。

        3. 支持包括美顏濾鏡在內(nèi)的20多款濾鏡。

        4. 支持視頻軟編硬編。

        5. 支持錄制視頻保存成mp4。

        6. 使用OpenGL進(jìn)行畫面渲染,更少的CPU和內(nèi)存占用,高通630的中端機(jī)子硬編并開啟RTMP推流實測僅12%的CPU占用。

        運行截圖


        二、使用

        1.把以下代碼加入到Project的build.gradle。

        buildscript {
            ext.kotlin_version = '1.2.30'//Latest kotlin version
            dependencies {
                classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            }
        }
        allprojects {
            repositories {
                google()
                jcenter()
            }
        }

        2.導(dǎo)入依賴,把以下代碼加入到Module的build.gradle。

        dependencies {
            implementation 'com.lmy.codec:hardwarevideocodec:1.6.3'
            implementation 'com.lmy.codec:rtmp:1.6.3'//如果需要使用RTMP推流功能
        }

        3.在Activity中使用HardwareVideoCodec。

        class MainActivity : AppCompatActivity() {
            private lateinit var mRecorder: VideoRecorderImpl
            override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)
                val mTextureView = TextureView(this)
                setContentView(mTextureView)
                mRecorder = VideoRecorderImpl(this).apply {
                    reset()
                    setOutputUri("${Environment.getExternalStorageDirectory().absolutePath}/test.mp4")
                    //setOutputUri("rtmp://192.168.16.125:1935/live/livestream")//如果需要使用RTMP推流,把路徑改為RTMP推流地址即可
                    setOutputSize(720, 1280)//Default 720x1280
                    setFilter(NormalFilter::class.java)//Default NormalFilter
                    setPreviewDisplay(mTextureView)
                }
                mRecorder.prepare()
                //For recording control
                mTextureView.setOnTouchListener { v, event ->
                    when (event.action) {
                        MotionEvent.ACTION_DOWN -> {
                            if (mRecorder.prepared())
                                mRecorder.start()
                        }
                        MotionEvent.ACTION_UP -> {
                            if (mRecorder.started())
                                mRecorder.pause()
                        }
                    }
                    true
                }
            }
            override fun onDestroy() {
                super.onDestroy()
                mRecorder.release()
            }
        }

        運行并授予必要權(quán)限,不出意外的話,你已經(jīng)可以看到攝像頭畫面了。如果有什么問題,歡迎在評論區(qū)留言或者ISSUE,我會及時解答。

        三、開源協(xié)議

        HardwareVideoCodec is GPL 2.0.

        瀏覽 28
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            肏逼网站在线观看 | 强壮公撩开我的裙子口述 | 久久久黄色| 极品小younv专区 | 我要看操逼的片子能给我播放吗谢谢 | 欧美一级A片高清免费播放 | 大尺度网页 | 亚洲AV电影网站 | 伊东千奈美一区二区在线观看 | 91午夜在线观看 |