- 博客(24)
- 资源 (47)
- 收藏
- 关注
转载 FFPLAY的原理(七)
同步音频现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同 步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频 都同步到外部时钟。生成一个视频时钟现在我们要生成一个类似于上次我们的声音时钟
2014-03-27 14:50:52 3112
转载 FFPLAY的原理(六)
显示视频这就是我们的视频线程。现在我们看过了几乎所有的线程除了一个--记得我们调用schedule_refresh()函数吗?让我们看一下实际中是如何做的:static void schedule_refresh(VideoState *is, int delay) {SDL_AddTimer(delay, sdl_refresh_timer_cb, is);}
2014-03-27 14:49:12 1281
转载 FFPLAY的原理(五)
创建线程Spawning ThreadsOverviewLast time we added audio support by taking advantage of SDL's audio functions. SDL started a thread that made callbacks to a function we defined every time it nee
2014-03-27 14:47:33 1430
转载 FFPLAY的原理(四)
意外情况你们将会注意到我们有一个全局变量quit,我们用它来保证还没有设置程序退出的信号(SDL会自动处理TERM类似的信号)。否则,这个线程将不停地运 行直到我们使用kill -9来结束程序。FFMPEG同样也提供了一个函数来进行回调并检查我们是否需要退出一些被阻塞的函数:这个函数就是 url_set_interrupt_cb。int decode_interrupt_cb(vo
2014-03-27 14:45:23 1016
转载 FFPLAY的原理(三)
播放声音现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数,这个结构体中包含了我们将要输出的音频的所有信息。在我们展示如何建立之前,让我们先解释一下电脑是如何处理音频的。数字音频是由一长串的样本流组成的。每个样本表示声音波形中的一个值。声音按照一个特定 的采样
2014-03-27 14:44:36 1591
转载 FFPLAY的原理(二)
关于包Packets的注释从技术上讲一个包可以包含部分或者其它的数据,但是ffmpeg的解释器保证了我们得到的包Packets包含的要么是完整的要么是多种完整的帧。现在我们需要做的是让SaveFrame函数能把RGB信息定稿到一个PPM格式的文件中。我们将生成一个简单的PPM格式文件,请相信,它是可以工作的。void SaveFrame(AVFrame *pFrame, i
2014-03-27 14:43:11 1250
转载 FFPLAY的原理(一)
概要电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就 是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元 素)。在流中的数据元素被称为帧Frame。每个流是由不同的编码 器来编码生成的。编解码器 描 述
2014-03-27 14:42:05 1143
转载 an introduction of ppm files
PPM is the portable pixel map format. It is a simple RGB color image description. The definition is as follows:A "magic number" for identifying the file type. A PPM file's magic number is the two
2014-03-27 09:19:19 971
转载 RTP协议应用方案
1.RTP协议应用方案之单播 在客户端与媒体服务器之间建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户端,这种传送方式称为单播。 优点:便于控制和管理;缺点:每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余造成服务器负担沉重,响应需要很长时间.2.RTP协议应用方案
2014-03-26 17:45:54 931
转载 android 屏幕保持唤醒 不锁屏 android.permission.WAKE_LOCK
In AndroidManifest.xml 加上权限: 方法一:public class UnLockActivity2 extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanc
2014-03-26 15:27:54 13930
转载 一个使用sws_scale封装的图像缩放函数
为了方便,可以自己写一个img_convert函数,然后函数内部用sws_scale来实现,只是对于一些错误的处理及返回值处理不太严格,但基本能用,代码如下:int img_convert(AVPicture *dst, int dst_pix_fmt, const AVPicture *src, int src_pix_fmt,
2014-03-26 14:40:21 3670
转载 ffmpeg中的sws_scale算法性能测试
经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我
2014-03-26 14:37:02 1007
转载 利用ffmpeg和SDL实现一个跨android版本的音视频播放器
1:从http://www.libsdl.org/tmp/下载SDL for android 版本(我下载的是 SDL-1.3.tar.gz ) 2:从https://github.com/havlenapetr/FFMpeg下载 havlenapetr 的ffmpeg for android版本。 3:把你下载的SDL for android版本解压到本地目录,解压到本地. 4:解压
2014-03-24 18:44:51 3331 1
转载 基于移动平台的多媒体框架——移植SDL到Android
基于移动平台的多媒体框架——移植SDL到AndroidSDL-1.3版开始官方支持Android。本文记录了移植1.3以上的版本的简单过程。要做一个完整的播放器,只有ffmpeg解码还不够,还需要一个显示视频播放音频的库,SDL是它的完美搭档。如何结合ffmpeg和SDL写一个播放器,可以参考经典教程(http://dranger.com/ffmpeg/)。我这里介绍如何把SDL移
2014-03-24 18:24:42 1444
转载 jni jstring 、char* 类型的转换
//jstring to char*char* jstringTostring(JNIEnv* env, jstring jstr){ char* rtn = NULL;jclass clsstring = env->FindClass("java/lang/String");jstring strencode = env->NewStringUTF("utf-8
2014-03-21 16:34:43 3543
转载 ffmpeg 新老接口问题及对照集锦
fmpeg源码包里面有个apichangs文档,里面有各种接口改变的记录,如果你发现接口不能用了,可以去搜索那个文档,可以找到对应的新接口,然后到新接口对应的头文件中找到说明文字网上很多关于ffmpeg (libav)的资料都是N年以前的,而事实上ffmpeg数年来一直在“以时俱进”,因此无论是一些新手,或者号称为老手的人,有时候难免出头痛。。。。。。为了解决大家的
2014-03-19 17:42:40 6576
转载 基于ffmpeg的Android播放器开源代码
博客分类:android多媒体http://www.cnblogs.com/mcodec/articles/1780598.html基于ffmpeg的Android播放器开源代码Posted on 2011-07-23 11:40 mcodec 阅读(1964) 评论(68) 编辑 收藏 本开源Android播放器基于ffmpeg开
2014-03-11 17:34:47 11989 3
转载 Makefile执行过程中出错:make: *** No rule to make target ` ‘, needed by xxx. Stop.
【问题】有个已有的Makefile,执行过程中出错:CLi@PC-CLI-1 ~/develop/docbook/books/python_topic_str_encoding/src $ make html =============================== cleaning html ==============================
2014-03-11 14:20:35 163742 5
转载 导入android项目总数出现:Unable to resolve target 'android-9'
导入一android项目,出现的一些错误及对应的解决办法:1、出现 “Unable to resolve target 'android-9'”,解决办法进入你的android project跟目录,找到此文件 project.properties(或default.properties),找到target=android-9出现此错是因为你的android环境跟此处不对应,那么,
2014-03-11 10:56:04 1993
转载 androi ndk configure under ubuntu 12.04
Android NDK 是运行于Android 平台上的Native Development Kit 的缩写。Android 应用开发者可以通过NDK 调用C 或C++ 本地代码。NDK的作用:代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。便于移植,用C/C++写得库可以
2014-03-11 10:24:51 872
转载 在ubuntu上搭建android开发环境
Ubuntu下安装Android开发环境比起Windows系统要方便一些,毕竟不用再去安装Cygwin,再加上Android开发、应用已经非常成熟(编译环境尤其是原生环境还是有很多BUG),所以入门上手还是非常容易。下面是Ubuntu系统下搭建Android开发环境过程,版本信息如下:Ubuntu 12.04.1 i386jdk-7u5-linux-i586.tar.gza
2014-03-05 14:48:48 1057 1
转载 udp 广播与组播
UDP组播是采用的无连接,数据报的连接方式,所以是不可靠的.也就是数据能不能到达接受端和数据到达的顺序都是不能保证的.但是由于UDP不用保证数据的可靠性,所有数据的传送速度是很快的.1. 组播的“根” 组播从概念上来讲分为两部分:控制部分和数据部分。控制部分决定着组播的对象的组织方式。而数据部分决定了数据的传输方式。 控制层有“有根”,“无根”两种情况。对于有根的控制层
2014-03-04 17:57:00 1922
转载 linux 共享内存shm_open实现进程间大数据交互
/*int shm_open(const char *name, int oflag, mode_t mode);//创建或打开一个共享内存,成功返回一个整数的文件描述符,错误返回-1。1.name:共享内存区的名字;2.标志位;open的标志一样3.权限位int shm_unlink(const char *name);编译时要加库文件-lrt*/
2014-03-04 16:47:14 1341
转载 ffmpeg 从内存中读取数据
ffmpeg一般情况下支持打开一个本地文件,例如“C:\test.avi”或者是一个流媒体协议的URL,例如“rtmp://222.31.64.208/vod/test.flv”其打开文件的函数是avformat_open_input(),直接将文件路径或者流媒体URL的字符串传递给该函数就可以了。但其是否支持从内存中读取数据呢?这个问题困扰了我很长时间。当时在做项目的时候
2014-03-04 16:42:58 2343
基于分块颜色相关向量的图像检索算法
2012-08-09
基于聚类的视频镜头分割和关键帧提取
2012-08-05
基于内容的视频检索关键技术研究
2012-08-05
自适应宏块编码算法的研究
2012-08-05
基于OpenCV 的运动物体跟踪系统的设计与实现
2012-08-05
基于语义信息提取的新闻视频场景分割方法
2012-08-03
数字RGB与YCbCr颜色空问转换的精度
2012-07-29
室内场景视频结构化描述系统设计
2012-07-29
关于大小端--大端 小端 大小端
2011-07-23
wince 实现远程桌面连接
2011-07-07
ISO/IEC 13818-7----AAc 音频格式解释文档
2011-06-11
mp4 creator- win32
2011-05-28
WinCe中bib文件的作用
2011-05-05
流文件mp4研究大礼包
2011-04-11
采用directshow架构实现的嵌入式远程音视频传输系统
2011-03-15
YUV Viewer (附测试文件格式:yuv420)
2011-02-24
基于Android的P2P手机高清视频在线点播系统
2014-11-27
使用eclipse/ndk-gdb对java/native code联合调试
2014-11-04
jni回调Java层函数示例
2014-10-13
Android应用源码通用UPnP、DLNA安卓播放器项目
2014-09-28
vlc media player 插件源码
2013-11-20
语音信号特征提取中Mel倒谱系MFCC的改进算法
2012-08-19
基于光流法对移动目标的视频检测与应用研究
2012-08-15
H.264 and MPEG-4 Video Compression
2012-08-11
综合MPEG-7中颜色特征的图像检索方法
2012-08-07
基于MPEG-7标准的视频描述与检索
2012-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人