HardwareVideoCodec是一个高效的Android音视频编码库,支持软编和硬编。使用它你可以很容易的实现任何分辨率的视频编码,无需关心摄像头预览大小。一切都如此简单。目前已迭代多个稳定版本,欢迎查阅学习和使用,如有BUG或建议,欢迎提Issue。
HardwareVideoCodec是个高性能、易用的Android音视频编码开源库,支持多款滤镜,支持RTMP直播推流,以及软编和硬编。硬编性能较好,在高通630的中端机子上实测1080p、30fps毫无问题。软编性能差一点,同样的机子,软编只能达到720p、24fps。硬编性能较好,软编兼容性较好,这个需要根据的业务需求进行选择。
HardwareVideoCodec目前已经迭代到了1.6.3
版本,更新了新的美颜滤镜,美颜更出色,更有40+滤镜库。支持RTMP推流,实测1080p、30fps局域网推流毫无性能压力。以下是主要的特性:
支持高性能
的RTMP直播推流。
支持在不重启Camera的基础上,热切换
画面分辨率。
支持包括美颜滤镜
在内的20多款滤镜。
支持视频软编
和硬编
。
支持录制
视频保存成mp4。
使用OpenGL
进行画面渲染,更少的CPU和内存占用,高通630的中端机子硬编
并开启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.导入依赖,把以下代码加入到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() } }
运行并授予必要权限,不出意外的话,你已经可以看到摄像头画面了。如果有什么问题,欢迎在评论区留言或者ISSUE,我会及时解答。
HardwareVideoCodec is GPL 2.0.
软件简介 HardwareVideoCodec是一个高效的Android音视频编码库,支持软编和硬编。使用它你可以很容易的实现任何分辨率的视频编码,无需关心摄像头预览大小。一切都如此简单。目前已迭代多个稳定版本,欢迎查阅学习和使用,如有BUG或建议,欢迎提Issue。 一、简介 HardwareVideoCodec是个高性能、易用的Android音视频编码开源库,支持多款滤镜,支持RTMP直播推流
软件介绍 HardwareVideoCodec是一个高效的Android音视频编码库,支持软编和硬编。使用它你可以很容易的实现任何分辨率的视频编码,无需关心摄像头预览大小。一切都如此简单。目前已迭代多个稳定版本,欢迎查阅学习和使用,如有BUG或建议,欢迎提Issue。 一、简介 HardwareVideoCodec是个高性能、易用的Android音视频编码开源库,支持多款滤镜,支持RTMP直播推流
我正在尝试使用MediaCodec和MediaMuxer对来自相机的视频和来自麦克风的音频进行编码。我在录制时使用OpenGL在图像上覆盖文本。 我以这些课程为例: http://bigflake.com/mediacodec/CameraToMpegTest.java.txt https://github.com/OnlyInAmerica/HWEncoderExperiments/blob/m
我正在开发一个应用程序,它使用(在一个片段中)加载一个YouTube页面。但页面只播放音频,不播放视频。奇怪的是,点击HOME键后再点击桌面上的图标返回app后,视频播放还不错。除此之外,没有视频只有音频。这款应用在正常的Android设备上运行良好,这个错误只发生在Kindle Fire平板设备上。 硬件加速已打开。
本文向大家介绍你知道有哪些常见的视频(音频)编码格式和视频(音频)格式吗?相关面试题,主要包含被问及你知道有哪些常见的视频(音频)编码格式和视频(音频)格式吗?时的应答技巧和注意事项,需要的朋友参考一下 视频:.ogg .mov .webp .avi .rmvb .mp4 音频:.mp3 .wav 只能想到这么多 webp?不是图片格式吗
在我的android应用程序中,我将视频编码为base64,如下所示。 File File=new File(path); InputStream is=new FileInputStream(File); int length=(int)File.length(); byte[]bytes=new byte[lengt]; int a=is.read(bytes,0,length); Strin
16 音频编码器 介绍当前可用的音频编码器 aac AAC(Advanced Audio Coding )编码器 当前原生(内置)编码器还处于实验阶段,而且只能支持AAC-LC(低复杂度AAC)。要使用这个编码器,必须选择 ‘experimental’或者’lower’ 因为当前还处于实验期,所以很多意外可能发生。如果需要一个更稳定的AAC编码器,参考libvo-aacenc,然而它也有一些负面报
当试图将source.mp4编码为多个比特率和大小以便自适应HLSv3回放时,所产生的音频和视频逐渐不同步。当擦洗到稍后的点,它似乎重置,并保持同步。 我正在使用最新的FFMPEG4.2.1通过自制-ffmpeg,使用libfdk-aac编解码器。注意,这也发生在FFMPEG4.1中。 音频和视频流很少,这会导致这个问题吗? 以下是源文件中的一些元数据: 和编码命令:
我正在尝试使用使用编解码器对一些音频流进行编码。为此,我使用了google cts ExtractEncodeMust的这个实现。 对于某些aac文件,它会在编码某些帧后抛出。更准确地说,它会在第1030行抛出异常,。 我正在配置如下: 我完全不知道如何解决这个问题。任何形式的帮助都将不胜感激。 带有一些日志的堆栈跟踪: 设备:小米POCO x3 操作系统:Android10 导致溢出的示例文件信