说下 winOS / IOS / android /Linux 视频、音频 编码解码问题
最近有朋友遇到一个问题, ios 上传视频文件,想在本地压缩下,然后再上传到服务器。
问有没有什么 视频处理的库,
最近Khronos的webgl 支持HTML5 ,(原理 WebGL 是openGL,openES的库》JS接口》解码HTML5的canvas数据 )
流程反过来 也可以看成是 浏览器 HTML5的canvas 的数据 ==》通过调用JS访问 WebGL ==》WebGL 访问openGL,opengES 进行软硬解码 。
我想这应该是浏览器 最好的选择。
windows/linux :
我第一个想到的是ffmpeg (windows/linux 下 软、硬解码都支持)
然后是其他各种播放器,的 软硬 编码、解码
IOS:
ios8 之后已经开放了H264硬解的API了
AVAssetExportSession
AVFoundation里面的
http://www.zhihu.com/question/20692215
iOS 系统中,H.264 视频流可以硬件解码吗? 具体如何实现?
demo
https://github.com/adison/-VideoToolboxDemo
https://github.com/stevenyao/iOSHardwareDecoder
android :
- androidAPI
使用VideoView和MediaPlayer都可以播放视频,这两个类到底是什么不同呢?
VideoView 调用了 MediaPlayer 来播放视频,提供了一些视频播放的辅助功能。
PS.有人说android 设备太多(GPU不一样)硬解码 会有问题,
libstagefrighthw.so
2.ffmpeg
- 需要验证再添加
4.类似VLC,mplayer 也应该支持硬解码 所以从各个播放器的 开源代码中寻找线索,可能会有所发现
我想 持续整理下 这方面的资料,以下是网上收集来的
http://www.eoeandroid.com/thread-288058-1-1.html
1、用Android4.1 API MediaCodec来对视频数据进行编码
http://stackoverflow.com/q/17232477/2293921
http://stackoverflow.com/questions/17232477/how-to-use-android-mediacodec-encode-camera-datayuv420sp/17288070#17288070
以上网址相同 ,概括:How to use Android MediaCodec encode Camera data(YUV420sp)
2、通过MediaRecorder方式对数据进行编码
具体可参考http://blog.csdn.net/zblue78/article/details/6083374
3、通过移植ffmpeg
http://www.cnblogs.com/dwdxdy/p/3247075.html
概括:NVCUVENC库是NVIDIA公司提供的视频编码库,可以实现H.264的GPU编码,接收原始YUV frames数据,编码产生NAL packets。
https://github.com/yixia/VitamioBundle
https://www.vitamio.org/Document/Introduction/2013/0429/3.html
概括:
由于收费,所以不考虑。
Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐。到目前,全球已经有超过 100 种应用在使用 Vitamio,覆盖用户超过 2000 万。
音频和视频格式
Vitamio 使用了 FFmpeg 做为媒体解析器和最主要的解码器,同时开发了针对不同移动平台的硬解码方案,能够完美支持 H.264/AVC、H.263、 MPEG4 等常见的视频编码,覆盖上百种多媒体格式。下表只是一些最常见的视频格式支持,除特殊标明,全部支持硬件加速:
DivX/Xvid
WMV (一般只有软解码)
FLV
TS/TP
RMVB (只有软解码)
MKV
MOV
M4V
AVI
MP4
3GP
使用Android中的StageFright框架调用OpenMAX进行硬件编码,OMX部分由硬件厂商实现,无需关注,看好StageFright的调用方法即可
自己写解码264文件,如果用view显示,就需要转成bitmap显示,或者使用opengl可以显示yuv数据
如果已经保存成MP4格式的文件,就不需要解码了,通过mediaplayer就能播
说下 winOS / IOS / android /Linux 视频、音频 编码解码问题的更多相关文章
- IOS和Android支持的音频编解码
1.IOS编码 参考文档地址:https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/Multimedi ...
- Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)
本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...
- Android IOS WebRTC 音视频开发总结(六十)-- 您为什么招不到适合的音视频人才
本文主要介绍音视频行业招聘现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 有过音视频人才招聘经验的应该都深有 ...
- Android IOS WebRTC 音视频开发总结(八)-- ios上移植webRTCDemo
这篇文章主要介绍ios webrtcdemo的实现及相关注意事项,转载请说明出处(博客园RTC.Blacker) 前面很多人问webrtc android下有webrtcdemo,ios上怎么找不到, ...
- 浅谈 unix, linux, ios, android 区别和联系
浅谈 unix, linux, ios, android 区别和联系 网上的答案并不是很好,便从网上整理的相对专业的问答,本人很菜,大佬勿喷 UNIX 和 Linux UNIX 操作系统(尤尼斯) ...
- 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)
随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...
- 直播软件开发关于Android、iOS中的视频采集步骤
很多人对直播软件开发还是抱有想法的,但是在这个资本冷静的市场下,直播平台该怎么玩,在直播软件开发过程中哪些功能是必须具备的,这都是值得关注的话题.今天我们给大家分享一份详细的直播软件开发关于Andro ...
- Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)
本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...
- iOS音频AAC视频H264编码 推流最佳方案
iOS音频AAC视频H264编码 推流最佳方案 项目都是个人的调研与实验,可能很多不好或者不对的地方请多包涵. 1 功能概况 * 实现音视频的数据的采集 * 实现音视频数据的编码,视频编码成 ...
随机推荐
- EXTJS4.2 控件之Grid getRowClass 添加行背景色
css 样式: /*交流管理系统 开始*/ tr.x-grid-record-blue .x-grid-td { background: #87CEFF; }/*grid 行颜色*/ tr.x-gri ...
- 【BZOJ 1834】 [ZJOI2010]network 网络扩容
Description 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用.求: 1. 在不扩容的情况下,1到N的最大流: 2. 将1到N的最大流增加K所需的 ...
- CQRS学习——一个例子(其六)
[先上链接:http://pan.baidu.com/s/1o62AHbc ] 多图杀猫 先用一组图看看实现的功能: 添加一个功能 假定现在要添加一个书本录入的功能,那么执行如下的操作: 1.添加Co ...
- POJ 1850 Code(组合数)
http://poj.org/problem?id=1850 题意 :给定字符串,系统是用字符串组成的,字符串是按字典序排的.编码系统有三条规则,1这些的单词的长度是由小到大的,2相同长度的按字母在字 ...
- maven3常用命令\创建Project
转自 http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常用命 ...
- http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
- 修改netbeans模版头部的说明
以新建一个php类文件为例: 有两个地方需要修改, 1,工具->模版->默认许可证->在编辑器中打开 2,工具->模版->选择php类->在编辑器中打开 即可进行修 ...
- Java List详解
就是一种集合对象,将所有的对象集中到一起存储. list里面可以放java对象,可以直接放值. List list = new ArrayList(); list.add("AAA" ...
- Altium designer中级篇-名称决定多边形连接样式
在工作中积累了诸多小技巧,可以让工作变的更简单,就比如这个多边形铺铜,与大部分规则的不同之处在于,通过更改多边形的名称,就能达到控制多边形规则的效果.这样多边形铺铜变的及其灵活,下面将对这个经验做一个 ...
- WPF中通过代码定义模板
WPF中可以再XAML中定义模板,也可以通过C#代码定义模板,通过代码可能更清楚的看清其逻辑,而且代码的好处就是可以随时动态的去操作,而在XAML中定义的一般都是静态的. //控件呈现的显示内容1(这 ...