摘要:
mkv和avi的格式只是封装容器,里面封装的是视频流+音频流。容器不会影响画面质量,影响质量的是容器里面封装的什么东西。所以你换换容器,而里面的东西不换的话,对清晰度字幕音频等是没有影响的。补充一下视频基础知识吧,可能有不对的地方。一,首先说,视频格式并不能决定清晰度。影片的清晰度一要看分辨率,二要看片源,三要看码率。当然有些特定的格式决定了自身的清晰度。但是有一点是确定的,一个电影采用同一种视频编码,越清晰的体积越大。目前视频都是由音频流+视频流组成。格式只是封装容器,例如rmvb,mkv,avi,mpg,ts等等。常见的视频流有MPEG2,MPEG4,H264,VC1等等,MPEG2是比较 阅读全文
摘要:
小知识:RGB与YUV----摘自《DirectShow实务精选》 作者:陆其明计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。 根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。F = r [ R ] + g [ G ] + b [ B ]其中,r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑 阅读全文
摘要:
在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。 #pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。 依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pragma para 其中para为参数,下面来看一些常用的参数。 (1)message 参数 message参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息, 这对于源代码信息的控制是非常重要的。其使用方法为: #pragma messa... 阅读全文
摘要:
覆盖表面(Overlay Surfaces) 覆盖表面是具有特殊硬件支持能力的表面,通常用于显示活动视频、录制视频或静止位图而不需要位块传输到主表面或改变主表面的内容。对覆盖表面的字此完全由硬件提供,DirectDraw支持显示设备驱动程序所支持的特性,DirectDraw不仿真覆盖表面。可以将覆盖表面想象为一片塑料纸,我们可以在这片塑料上画图并可将其放置在显示器前面。塑料纸覆盖在显示器前面时,你可以看到覆盖和主表面,移去塑 料纸后,主表面并没有改变。覆盖表面的工作原理同透明塑料纸覆盖的原理很相似。的显示一个覆盖表面时,就是告诉设备驱动程序在哪里怎样使覆盖表... 阅读全文
摘要:
(1)为什么需要overlay:为什么需要overlay? overlay产生的原因是:1,避免在vertical blank时flip/blt surface造成的画面"撕 裂"现象; 2,使硬件可以窗口模式下使用flip而不是blt,从而提高效率. 3D游戏里面它没有什么用的上的地方, 因为一般硬件不支持 render to overlay surface, 2D游戏一般也不用它, 因为象素格式问题, 从RGB的surface blt到YUV的 surface时需要硬件花时间去转换, 除非游戏里所有的其他surface也用YUV.注: 一般硬件overlay surfa 阅读全文
摘要:
YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。 与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不 阅读全文
摘要:
root@web ffmpeg]# ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]Standard options: 基本选项参数--help 显示此帮助信息|print this message--log[=FILE|yes|no] 记录测试并输出到config.err文件|log tests and output to FILE [config.err]--prefix=PREFIX 安装程序到指定目录(默认/usr/local)|install i 阅读全文
摘要:
内存地址对齐,是一种在计算机内存中排列数据、访问数据的一种方式,包含了两种相互独立又相互关联的部分:基本数据对齐和结构体数据对齐。当今的计算机在计算机内存中读写数据时都是按字(word)大小块来进行操作的(在32位系统中,数据总线宽度为32,每次能读取4字节,地址总线宽度为32,因此最大的寻址空间为2^32=4GB,但是最低2位A[0],A[1]是不用于寻址,A[2-31]才能存储器相连,因此只能访问4的倍数地址空间,但是总的寻址空间还是2^30*字长=4GB,因此在内存中所有存放的基本类型数据的首地址的最低两位都是0,除结构体中的成员变量)。基本类型数据对齐就是数据在内存中的偏移地址必须等于 阅读全文
摘要:
1、link error 1104原因:当从vc6移植到.net时,会导致这个链接错误!解决:项目属性->配置属性->链接器->输入->忽略特定库,加入libcd.lib;或直接在命令行中加入:/NODEFAULTLIB:"libcd.lib"注意:是否是libcd.lib,与C/C++属性中的“代码生成”选项相关单线程 (libc.lib)多线程 (libcmt.lib)使用 DLL 的多线程 (msvcrt.lib)调试单线程 (libcd.lib)调试多线程 (libcmtd.lib)使用 DLL 的调试多线程 (msvcrtd.lib)2、L 阅读全文
摘要:
步骤:1、搭建 MinGW 的编译环境下载yasm,地址:http://yasm.tortall.net/Download.html改名为yasm.exe放到C:\WINDOWS\system32 或者 C:\MinGW\msys\1.0\bin文件夹下。下载 mingw-get-inst-20101030.exe , 点击这里下载http://sourceforge.net/projects/mingw/files/。安装时选择如下安装过程中,需要联网。安装程序会去网上下载对应的程序。这一过程耗时较长,请耐心等候。注意:如果安装过程中,网络断开或是无法出现了下载某些组建失败,不用担心,等安装 阅读全文