音视频
迷路国王
丰富有趣
展开
-
轻松搭建基于JetPack组件的MVVM框架
介绍辅助android开发者搭建基于JetPack组件构建MVVM框架的注解处理框架。通过注解自动生成ViewModel的Factory类、lazy方法等;支持在项目的任意位置注入ROOM的dao层接口与Retrofit库中的api接口。github特点android开发者可以将brick理解为一个轻量级的注入框架,使用非常简单,使用4-6个注解即可工作。brick主要在编译期工作, 不会在App运行时产生任何额外的性能消耗 ,并且只有1个注解库会打包到你的android工程中,不用担心体积增大的问原创 2020-08-12 09:41:29 · 856 阅读 · 0 评论 -
即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门
1、引言如今我们所处的时代,是移动互联网时代,也可以说是视频时代。从快播到抖音,从“三生三世”到“延禧攻略”,我们的生活,被越来越多的视频元素所影响。而这一切,离不开视频拍摄技术的不断升级,还有视频制作产业的日益强大。此外,也离不开通信技术的飞速进步。试想一下,如果还是当年的56K Modem拨号,或者是2G手机,你还能享受到现在动辄1080P甚至4K的视频体验吗?除了视频拍摄工具和网络通信技术升级之外,我们能享受到视频带来的便利和乐趣,还有一个重要因素,就是视频编码技术的突飞猛进。视频编码技转载 2020-08-11 13:56:22 · 1250 阅读 · 0 评论 -
即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型
1、引言大家好,我是刘华平,从毕业到现在我一直在从事音视频领域相关工作,也有一些自己的创业项目,曾为早期Google Android SDK多媒体架构的构建作出贡献。就音频而言,无论是算法多样性,Codec种类还是音频编解码复杂程度都远远比视频要高。视频的Codec目前还主要是以宏块为处理单元,预测加变换的混合编码框架,例如H.264和H.265都是在这一框架下。而音频则相当复杂,且不同的场景必须要选择不同的音频编解码器。以下就是本次为大家分享的主要内容,希望通过此次分享可以使大家对音频编解码有一个.转载 2020-08-11 13:04:31 · 1894 阅读 · 0 评论 -
即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生
前言目前从开发者的角度来说,音视频编码选H.264还是VP8几乎没有悬念(个人认为这当然是H.264了)。本文重在为读者从技术角度讲解H.264和VP8的发展渊源以及现时所面临的问题,相信读完此文后,对于即时通讯(IM聊天应用)的实时音视频开发中视频编码的选择会有个直观的了解。实际上,实时音视频通讯 = 音视频处理 + 网络传输。包括采集、编码、网络传输、解码、播放等环节。音视频处理中最为关键的视频编解码是个头等重要的问题,对于开发者来说,以目前所能找到的技术资源以及应用的普及程度,因为背靠巨头,H.转载 2020-08-11 12:18:18 · 1150 阅读 · 0 评论 -
即时通讯音视频开发(十六):移动端实时音视频开发的几个建议
前言随着移动互联网的快速发展以及智能终端性能的逐步提高,智能终端间进行实时音视频通讯成为移动互联网发展的一个重要方向。实际上,实时音视频通讯 = 音视频处理 + 网络传输。包括采集、编码、网络传输、解码、播放等环节。这么多项并不简单的技术应用,如果把握不当,将会在在实际开发过程中遇到一个又一个的坑,本文将就几个典型问题给出简要的参考建议。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article.转载 2020-08-11 11:30:32 · 532 阅读 · 0 评论 -
即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情况
前言随着移动互联网的快速发展以及智能终端性能的逐步提高,智能终端间进行实时音视频通讯成为移动互联网发展的一个重要方向。那么如何保证智能终端之间实时音视频数据通讯成为一个很现实的问题。实际上,实时音视频通讯 = 音视频处理 + 网络传输。包括采集、编码、网络传输、解码、播放等环节。而网络传输是整个应用中非常重要的一环,基于当前网络带宽和服务端器资源的昂贵特性,通常情况下,实时音视频应用的网络通讯,都会结合P2P技术,从而大幅降低运营成本。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:.转载 2020-08-11 11:26:46 · 884 阅读 · 0 评论 -
flutter_update_dialog 一个漂亮的版本更新弹窗
前言前段时间我发布了一个只针对Android的版本更新框架flutter_xupdate,发布以来收到了大家许多的建议.当时我也只是为了自己方便才写的这么一个插件,并没有考虑很多.建议有很多,大致可以分为如下几类:能否支持ios版本更新?能否支持自定义api?能否支持自定义版本更新弹窗?能否开发apk安装能力?…看到最后,居然还有人问:能不能给我提供检查版本、弹窗显示、apk下载、apk安装的能力,这样我就可以自己写更新逻辑了…看来真的是不同的人对版本更新是有不同的需求,我想了一下,与其原创 2020-08-11 08:17:22 · 834 阅读 · 1 评论 -
即时通讯音视频开发(十四):实时音视频数据传输协议介绍
概述随着移动互联网的快速发展以及智能终端性能的逐步提高,智能终端间进行实时音视频通讯成为移动互联网发展的一个重要方向。那么如何保证智能终端之间实时音视频数据通讯成为一个很现实的问题。实际上,实时音视频通讯 = 音视频处理 + 网络传输。包括采集、编码、网络传输、解码、播放等环节。其中采集、编解码和播放属于“音视频处理”是不受网络条件影响的,只受限于编解码算法,播放策略等因素。而网络传输的丢包、抖动和乱序对实时音视频应用的体验影响最为重大,如何解决好这些问题,是个很大的研究课题,好在目前已经存在多种非.转载 2020-08-11 08:07:46 · 1142 阅读 · 0 评论 -
即时通讯音视频开发(十三):实时视频编码H.264的特点与优势
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html。更多实时音视频开发相关的资料请见社区精选专辑《实时音视频开发资料汇总》。本文主要讲解实时音视频技术中最流行的视频编码技术H..转载 2020-08-11 07:00:28 · 624 阅读 · 0 评论 -
即时通讯音视频开发(十二):多人实时音视频聊天架构探讨
前言移动互联网发展迅猛,目前实时音视频技术已被广泛地应用在了实时在线教育、智能家居、在线直播、安防监控等领域。这之中,诸如多人视频会议、在线实时视频教育等场景,跟传统的一对一实时音视频聊天,在技术架构的实现上有很大不同。虽然都是视频通讯,大部分情况下的单人视频通话可能根本不需要用到流媒体服务,而多人视频,如在线教育这些则必须用到,所以下面主要介绍多人视频中服务端架构模式,以及各自特点。多人实时音视频架构1:Mesh结构这是最简单的多人视频通话架构模式,所有媒体流都不需要经过服务端,客户端直接.转载 2020-08-11 06:51:54 · 1038 阅读 · 0 评论 -
即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文是一篇详细介绍实时语音通讯过程中的丢包补偿技术的文章。内容概述现如今,随着移动互联网越来越普及,实时语音通讯应用越.转载 2020-08-11 06:47:55 · 796 阅读 · 0 评论 -
即时通讯音视频开发(十):实时语音通讯的回音消除技术详解
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文是一篇详细介绍实时音频通讯过程中的回音消除技术的文章,主要描述的是回音消除技术理论和算法原理等。内容概述笔者从20.转载 2020-08-10 17:32:57 · 581 阅读 · 0 评论 -
即时通讯音视频开发(九):实时语音通讯的回音及回音消除概述
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文是一篇介绍实时音频通讯过程中的回音问题,以及回音消除技术的介绍文章。什么是回音?在一般的VOIP软件或视频会议系统.转载 2020-08-10 17:21:09 · 523 阅读 · 0 评论 -
即时通讯音视频开发(八):常见的实时语音通讯编码标准
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文是一篇讲述常用的实用音频通讯编码标准的文章。内容概述视频通讯过程是视频和音频的实时双向完整通讯过程。在这个过程中我.转载 2020-08-10 17:17:43 · 949 阅读 · 0 评论 -
即时通讯音视频开发(七):音频基础及编码原理入门
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文是一篇讲述基础音频知识和编码原理的文章。基础概念比特率:表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来.转载 2020-08-10 17:07:20 · 725 阅读 · 0 评论 -
即时通讯音视频开发(六):如何开始音频编解码技术的学习
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文是一篇讲述新手如何学习音频编解码知识的文章。说说音频编解码技术学习方法总是有人问我研究音频编解码要看什么书,其实这是.转载 2020-08-10 16:56:09 · 696 阅读 · 0 评论 -
即时通讯音视频开发(五):认识主流视频编码技术H.264
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文主要讲解实时音视频技术中目前主流的视频编码技术H.264相关知识。H.264简介什么是H.264?H.264是一种.转载 2020-08-10 16:40:00 · 537 阅读 · 0 评论 -
即时通讯音视频开发(四):视频编解码之预测技术介绍
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文主要讲解实时音视频技术中视频技术的预测技术理论知识。1. 预测技术的作用目的是去除空间冗余和时间冗余。因为视频存在大.转载 2020-08-10 16:28:06 · 627 阅读 · 0 评论 -
即时通讯音视频开发(三):视频编解码之编码基础
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文主要讲解实时音视频技术中视频技术的编码理论知识。系列文章本文是系列文章中的第3篇,本系列文章的大纲如下:《即时通讯音视.转载 2020-08-10 16:09:27 · 697 阅读 · 0 评论 -
即时通讯音视频开发(二):视频编解码之数字视频介绍
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文主要讲解实时音视频技术中视频技术的数字视频知识。系列文章本文是系列文章中的第2篇,本系列文章的大纲如下:《即时通讯音视.转载 2020-08-10 15:52:21 · 651 阅读 · 0 评论 -
即时通讯音视频开发(一):视频编解码之理论概述
前言即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》:http://www.52im.net/article-119-1.html本文主要讲解实时音视频技术中视频技术的编解码基础理论。视频为何需要压缩?1. 未经压缩的数字视频的数据量巨大2. 存储.转载 2020-08-10 15:43:20 · 1320 阅读 · 0 评论 -
Android 音视频 --------- FFmpeg将多张图片合成视频
FFmpeg将多张图片合成视频首先要计算出视频的总帧数:总帧数 = duration * fps 。duration是我们设定的视频的长度,fps是视频每秒的帧数。第二步将所有的图片文件放到一个临时目录,并且制定一个命名规则(可正则的):例如图片的素材是image0.jpg image1.jpg image2.jpg然后可以执行命令合成视频了:带音频:ffmpeg -threads2 -y -r 10 -i /tmpdir/image%04d.jpg -i audio.mp3 -abs转载 2020-07-14 09:15:47 · 2954 阅读 · 0 评论 -
音视频开发(二)使用ndk命令编写so库文件
第1步:新建一个Android Studio 工程 testdemo。新建一个DemoJni.java文件。DemoJni .javapublic class DemoJni { static { System.loadLibrary("DemoJni"); } public native static String getString();}...原创 2020-05-03 12:26:07 · 145 阅读 · 0 评论 -
音视频之动态创建so库文件(一)ndk环境变量配置
首先勾选DNK选项然后点击Apply即可等待下载自动解压完成就可以了3. 找到下载好的目录打开android studio选择file然后选择project structure即可找到NDK下载好的所在目录,记得复制NDK路径接下来我们开始配置NDK环境变量看图即可:5. 最后输入命令 ndk-build即可...原创 2020-04-22 14:13:55 · 139 阅读 · 0 评论 -
音视频之最新超详细VMware虚拟机下载与安装
VMware下载与安装一、虚拟机的下载1.进入VMware官网,点击左侧导航栏中的下载,再点击图中标记的Workstation Pro,如下图所示。2.根据操作系统选择合适的产品,在这里以Windows系统为例,点击转至下载,如下图所示。3.在1处可以选择版本,默认为最新版本。选择好版本后点击立即下载,下载速度很慢的话,建议科学上网。二、虚拟机的安装1.打开.exe文件, 即可开...原创 2020-04-20 09:51:30 · 408 阅读 · 0 评论 -
手把手教你搭建ffmpeg命令行运行环境
做音视频开发的时候我们通常会遇到各种奇奇怪怪的问题:咦,同样的视频怎么在Android上能正常播放在iOS上却不能播放了呢?咦,怎么这个视频在电脑上能播放,在手机上只有声音没用画面啊?等等等莫名其妙的问题。这时候我们该怎么办,怎么定位问题呢?到底是视频的问题还是我播放的问题啊?这个时候ffmpeg命令行工具可能就帮到你了。ffmpeg能干什么通常所说的ffmpeg命令行工具主要是以下三个...原创 2020-04-19 17:38:54 · 1517 阅读 · 1 评论 -
Windows 10 安装 FFmpeg 并设置环境变量
下载 FFmpeg下载地址:解压放置将下载的压缩包解压获得 ffmpeg-4.0.2-win64-static 文件夹,将其重命名为 ffmpeg将 ffmpeg 文件夹放置到程序文件夹,假设放置路径为:D:\Program Files打开环境变量设置页:资源管理器 > 此电脑 > 右键-属性 > 高级系统设置 > 环境变量双击 Path 项进入编辑页选择...原创 2020-04-19 17:47:13 · 2363 阅读 · 0 评论