1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/imalimin-HardwareVideoCodec

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

⚠️HardwareVideoCodec не будет обновляться

Этот проект был перенесён в hwvc. hwvc — это кроссплатформенный проект, предназначенный для быстрой и простой реализации разнообразных сложных мультимедийных потребностей, включая запись и редактирование. В этом проекте используется реализация на C / C++, в настоящее время поддерживается только платформа Android, но его также можно легко портировать на другие платформы, такие как IOS.

HWVC (HardwareVideoCodec)

Download

HWVC — это эффективная библиотека кодирования видео для Android. Поддерживает кодирование software и hardware. С её помощью вы можете кодировать видео с любым разрешением, больше не нужно заботиться о разрешении камеры. Всё так просто.

ScreenRecord_1 ScreenRecord_2

Последний релиз

V1.7.3

  • Поддержка поиска.
  • Исправление жизненного цикла проигрывателя.
  • Поддержка добавления фильтров к существующим видео или обрезки видео.
  • Поддержка видеопроигрывателя.

Функции

  • Поддержка кодирования видео с любым разрешением. Не нужно заботиться о разрешении камеры.
  • Поддержка добавления фильтров к существующим видео или обрезки видео.
  • Поддержка RTMP-потока.
  • Поддержка изменения разрешения без перезапуска камеры.
  • Поддержка жёсткого и мягкого кодирования.
  • Запись видео и аудио. Упаковка mp4 через MediaMuxer.
  • Использование OpenGL для рендеринга и поддержки фильтров.
  • Поддерживает более 40 фильтров.
  • Поддержка фильтра красоты.
  • Поддержка изменения разрешения без перезагрузки камеры.
  • Дополнительные функции.

Начало работы

Если вы создаёте проект с помощью Gradle, просто добавьте следующий код в свой проект:

  • Вам необходимо настроить среду Kotlin. Проект root build.gradle:
buildscript {
    ext.kotlin_version = '1.2.30'//Последняя версия Kotlin
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
allprojects {
    repositories {
        google()
        jcenter()
    }
}
  • Модуль build.gradle:
dependencies {
    implementation 'com.lmy.codec:hardwarevideocodec:1.7.3'
    implementation 'com.lmy.codec:rtmp:1.7.3'//Если вы хотите использовать RTMP поток.
}
  • Для записи mp4:
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")
            setOutputSize(720, 1280)//По умолчанию 720x1280
            setFps(30)
            setFilter(getDefaultFilter())
            setPreviewDisplay(mTextureView)
        }
        mRecorder.prepare()
        //Для управления записью
        mTextureView.setOnTouchListener { v, event ->
            when (event.action) {
                MotionEvent.ACTION_DOWN -> {
                    if (mRecorder.prepared())
                        mRecorder.start()
                }
                MotionEvent.ACTION_UP -> {
                    if (mRecorder.started())
                        mRecorder.pause()
                }
            }
            true
        }
    }

    private fun getDefaultFilter(): BaseFilter = GroupFilter.create(BeautyV4Filter())
            .addSticker(TextSticker().apply {
                setText(TextSticker.Text("HWVC", 56f).apply {
                    x = 0.8f
                    y = 0.03f
                })
            })
            .addSticker(ImageSticker().apply {
                setImage(ImageSticker.Image().apply {
                    x = 0.03f
                    y = 0.03f
                    scale = 1.6f
                    bitmap = BitmapFactory.decodeResource(resources,
``` ```
класс MainActivity : AppCompatActivity() {
    private lateinit var mRecorder: VideoRecorderImpl
    частный val onStateListener = object : VideoRecorder.OnStateListener {

        переопределить fun onStop() {
        }

        переопределить fun onPrepared(encoder: Encoder) {
            mRecorder.start()
        }

        переопределить fun onRecord(encoder: Encoder, timeUs: Long) {
        }

        переопределить fun onError(error: Int, msg: String) {

        }
    }

    переопределить fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val mTextureView = TextureView(this)
        setContentView(mTextureView)
        mRecorder = VideoRecorderImpl(this).apply {
            reset()
            setOutputUri("rtmp://192.168.16.125:1935/live/livestream")
            setOutputSize(720, 1280)//Default 720x1280
            setFps(30)
            setFilter(getDefaultFilter())//Default NormalFilter
            setPreviewDisplay(mTextureView)
            setOnStateListener(onStateListener)
        }
        mRecorder.prepare()
    }

    частная fun getDefaultFilter(): BaseFilter = GroupFilter.create(BeautyV4Filter())
            .addSticker(TextSticker().apply {
                setText(TextSticker.Text("HWVC", 56f).apply {
                    x = 0.8f
                    y = 0.03f
                })
            })
            .addSticker(ImageSticker().apply {
                setImage(ImageSticker.Image().apply {
                    x = 0.03f
                    y = 0.03f
                    scale = 1.6f
                    bitmap = BitmapFactory.decodeResource(resources, R.mipmap.ic_logo_hwvc)
                })
            })

    переопределить fun onDestroy() {
        super.onDestroy()
        mRecorder.release()
    }
}

Присоединяйтесь к сообществу HWVC

Пожалуйста, используйте нашу страницу с проблемами, чтобы сообщить нам о любых проблемах.

Лицензия

HWVC (HardwareVideoCodec) имеет GPL-лицензию.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/imalimin-HardwareVideoCodec.git
git@api.gitlife.ru:oschina-mirror/imalimin-HardwareVideoCodec.git
oschina-mirror
imalimin-HardwareVideoCodec
imalimin-HardwareVideoCodec
master