最近有朋友遇到一个问题, 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 :

  1. androidAPI

使用VideoView和MediaPlayer都可以播放视频,这两个类到底是什么不同呢?

VideoView 调用了 MediaPlayer 来播放视频,提供了一些视频播放的辅助功能。

PS.有人说android 设备太多(GPU不一样)硬解码 会有问题,

libstagefrighthw.so

2.ffmpeg

  1. 需要验证再添加

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 视频、音频 编码解码问题的更多相关文章

  1. IOS和Android支持的音频编解码

    1.IOS编码 参考文档地址:https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/Multimedi ...

  2. Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  3. Android IOS WebRTC 音视频开发总结(六十)-- 您为什么招不到适合的音视频人才

    本文主要介绍音视频行业招聘现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 有过音视频人才招聘经验的应该都深有 ...

  4. Android IOS WebRTC 音视频开发总结(八)-- ios上移植webRTCDemo

    这篇文章主要介绍ios webrtcdemo的实现及相关注意事项,转载请说明出处(博客园RTC.Blacker) 前面很多人问webrtc android下有webrtcdemo,ios上怎么找不到, ...

  5. 浅谈 unix, linux, ios, android 区别和联系

    浅谈 unix, linux, ios, android 区别和联系 网上的答案并不是很好,便从网上整理的相对专业的问答,本人很菜,大佬勿喷 UNIX 和 Linux   UNIX 操作系统(尤尼斯) ...

  6. 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)

    随笔分类 - webrtc   Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...

  7. 直播软件开发关于Android、iOS中的视频采集步骤

    很多人对直播软件开发还是抱有想法的,但是在这个资本冷静的市场下,直播平台该怎么玩,在直播软件开发过程中哪些功能是必须具备的,这都是值得关注的话题.今天我们给大家分享一份详细的直播软件开发关于Andro ...

  8. Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  9. iOS音频AAC视频H264编码 推流最佳方案

    iOS音频AAC视频H264编码 推流最佳方案 项目都是个人的调研与实验,可能很多不好或者不对的地方请多包涵. 1    功能概况 *  实现音视频的数据的采集 *  实现音视频数据的编码,视频编码成 ...

随机推荐

  1. MyEclipse新建Maven工程

    1.File-->New-->Web Project 2.新建文件夹 需要新建4个源文件夹,分别是  src/main/java   src/main/resources   src/te ...

  2. 在DataTable中执行DataTable.Select("条件")

     .在DataTable中执行DataTable.Select("条件")返回DataTable:  // <summary> // 执行DataTable中的查询返回 ...

  3. [转]BluetoothDevice.getType()-一个常常被忽略了的函数。好用的不要不要的

    自动安卓发布了4.0版本的蓝牙协议之后,越来越多的开发者收到了各种针对于BLE蓝牙的开发需求. 而且有很多时候还需要兼容以前的3.0版本,给大家的开发带来了困扰,笔者也遇到了这样的问题,偶然间发现了g ...

  4. static 内部类

    一般情况下是不可以用static修饰类的.如果一定要用static修饰类的话,通常static修饰的是匿名内部类. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static ...

  5. firefly的环境搭建(2013年9月25日最新,win下最详图文)

    源地址:http://www.9miao.com/question-15-53785.html 一.安装PythonFirefly是采用Python编写的高性能.分布式游戏服务器框架,所以使用Fire ...

  6. POJ 2193 Lenny's Lucky Lotto Lists (DP)

    题目链接 题意 : 给你两个数N和M,让你从1到M中找N个数组成一个序列,这个序列需要满足的条件是后一个数要大于前一个数的两倍,问这样的序列有多少,输出. 思路 : dp[i][j]代表着长度为 i ...

  7. android 使用系统照相程序照相并存储、显示在界面上

    大部分业务可以通过调用系统的相机程序来拍照. 界面如下: <?xml version="1.0" encoding="utf-8"?> <Li ...

  8. highcharts 多数据+切换

    var highchartsOptions = { chart:{ renderTo:'container' }, title:{ text:'指标数据' }, tooltip:{ pointForm ...

  9. hdu 4794 FIb求循环节

    很容易看出来这道题是求模n意义下fib数列的最小循环节 对于fib数列的最小循环节的求法,我们可以这样: 1.令n=p1^m1 * p2^m2 * p3^m3…… 2.分别计算fib数列在模p1^m1 ...

  10. linux配置防火墙详细步骤(iptables命令使用方法)

    通过本教程操作,请确认您能使用linux本机.如果您使用的是ssh远程,而又不能直接操作本机,那么建议您慎重,慎重,再慎重! 通过iptables我们可以为我们的Linux服务器配置有动态的防火墙,能 ...