Этот проект был перенесён в hwvc. hwvc — это кроссплатформенный проект, предназначенный для быстрой и простой реализации разнообразных сложных мультимедийных потребностей, включая запись и редактирование. В этом проекте используется реализация на C / C++, в настоящее время поддерживается только платформа Android, но его также можно легко портировать на другие платформы, такие как IOS.
HWVC — это эффективная библиотека кодирования видео для Android. Поддерживает кодирование software
и hardware
.
С её помощью вы можете кодировать видео с любым разрешением, больше не нужно заботиться о разрешении камеры. Всё так просто.
Если вы создаёте проект с помощью Gradle, просто добавьте следующий код в свой проект:
buildscript {
ext.kotlin_version = '1.2.30'//Последняя версия Kotlin
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
dependencies {
implementation 'com.lmy.codec:hardwarevideocodec:1.7.3'
implementation 'com.lmy.codec:rtmp:1.7.3'//Если вы хотите использовать RTMP поток.
}
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 (HardwareVideoCodec) имеет GPL-лицензию.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )