当前位置: 首页 > news >正文

在iis上部署的网站本机无法浏览解决方法网页设计公司南充有哪些

在iis上部署的网站本机无法浏览解决方法,网页设计公司南充有哪些,做铝锭的网站,网站界面设计的相关指南From: http://blog.csdn.net/jianxi258/article/details/6006307 一、简介 VLC的全名是Video Lan Client#xff0c;是一个开源的、跨平台的视频播放器。VLC支持大量的音视频传输、封装和编码格式#xff0c;完整的功能特性列表可以在这里获得http://www.videolan.org/vl…From: http://blog.csdn.net/jianxi258/article/details/6006307 一、简介     VLC的全名是Video Lan Client是一个开源的、跨平台的视频播放器。VLC支持大量的音视频传输、封装和编码格式完整的功能特性列表可以在这里获得http://www.videolan.org/vlc/features.html下面给出一个简要的不完整的列表     操作系统Windows、WinCE、Linux、MacOSX、BEOS、BSD     访问形式文件、DVD/VCD/CD、http、ftp、mms、TCP、UDP、RTP、IP组播、IPv6、rtsp     编码格式MPEG*、DIVX、WMV、MOV、3GP、FLV、H.263、H.264、FLAC     视频字幕DVD、DVB、Text、Vobsub     视频输出DirectX、X11、XVideo、SDL、FrameBuffer、ASCII     控制界面WxWidgets、QT4、Web、Telnet、Command line     浏览器插件ActiveX、Mozillafirefox       实际上为了更清晰一点我们可以反过来说说VLC不支持哪些常见的。首先是RealVideoReal的Audio部分支持因为Real的Video加码器存在版权的问题。实际上VLC 0.9.0已经加入了RealVideo的支持但是需要额外的解码器类似MPlayer。另外VLC不支持3GP的音频格式AMR。     VLC原先是几个法国的大学生做的项目后来他们把VLC作为了一个开源的项目吸引了来自世界各国的很多优秀程序员来共同编写和维护VLC才逐渐变成了现在这个样子。     至于为什么叫VideoLan Client是因为以前还有一个VideoLan Server的项目简称VLS而目前VLS的功能已经合并到VLC中来所以VLC不仅仅是一个视频播放器它也可以作为小型的视频服务器更可以一边播放一边转码把视频流发送到网络上。VLC最为突出的就是网络流的播放功能例如MPEG2的UDP TS流的播放和转发几乎是无可替代的。     对普通用户来说VLC还有一个好处是不影响Windows中的解码器。VLC通常不影响也不依赖于系统中自带的解码器除了realvideo和quicktime的类型很绿色很环保更不用担心流氓软件、广告插件之类的恶心的玩意儿。     从程序结构来看VLC的可扩展性是相当优秀的。VLC绝大部分用高效的C代码来编写少量的C和汇编但是实现了完全动态的模块化所有功能包括程序框架本身都是module可以在运行时载入这使得VLC可以轻易的扩展多种功能并且容易维护。它的架构有一点类似于DirectShow的技术。     VLC也很注重版权方面的问题你可以放心的自由的使用而不需要为版权的问题担心——VLC只包括免费的、自由的库。VLC基于GPL因此也可以用于商业应用只需要保留GPL以及公开源代码如果你修改了VLC的话。     下面是VLC相关的一些链接     VLC官方网站http://www.videolan.org/     VLC下载页面http://www.videolan.org/vlc/     VLC下载目录源码和安装包http://download.videolan.org/pub/videolan/vlc/     VLC Nightly Builds http://nightlies.videolan.org/     VLC 开发Wikihttp://wiki.videolan.org/Developers_Corner     VLC Win32第三方库预编译包下载目录http://download.videolan.org/pub/testing/win32/     VLC 官方论坛http://forum.videolan.org/     VLC 邮件列表http://www.videolan.org/developers/lists.html 二、Windows平台编译     第一步要创建编译VLC的环境。VLC在Windows下可以用MsysMingW 或者Cygwin的方式来编译二者大同小异这里主要介绍Cygwin。     Cygwin是一个在Windows下面模拟Linux环境的东西。它提供了很多库和应用程序让你可以像在Linux上一样来使用Windows。你需要在http://www.cygwin.com/ 下载一个cygwin的安装程序setup.exe。然后选择一个cygwin的源来下载所需要的库国内的话到 ftp://ftp.sjtu.edu.cn/cygwin/和 http://www.cygwin.cn/pub 相对来说会快一点。第一次安装除了默认的库以外我们还需要加入一些库来支持VLC的编译包括       Archive       目录       unzip        zip     Devel       autoconf       automake       binutils       cvs       expat       gcc       gcc-core       gcc-g       gcc-mingw       gcc-mingw-core       gcc-mingw-g       gdb 如果你需要调试的话       gettext       gettext-devel       git 不一定需要       libiconv       libtool       make       mingw-runtime       nasm       patchutils       pkg-config       subversion     Editor       vim 有了它方便点     Libs       libgcrypt     Web //这两个可以不要如果你不想编译第三方库       curl (optional: for building extras/contrib)       wget (optional: for building extras/contrib)       然后是下载所需要版本的VLC的源代码。对于Release版本可以从这里下载http://download.videolan.org/pub/videolan/vlc/如果你需要下载实时最新的库就要从VLC的源码库上取下来了。现在VLC改用git了使用命令 git clone git://git.videolan.org/vlc.git        VLC还需要很多第三方的库你可以取得源码来编译这部分可以参考Linux上的VLC编译的文章。在Windows上VLC做了一个编译好的win32第三方库的包可以从http://download.videolan.org/pub/testing/win32/ 下载。包需要解压到根目录 ‘/’事实上这些库都位于’/usr/win32-branch’里边。        在cygwin中进入vlc的主目录运行bootstrap’./bootstrap’。在等待它结束之前我们先来看一下如何配置VLC的编译。运行 ‘./configure -h cfg_opt.txt’就可以把配置的选项信息都输出到 cfg_opt.txt中然后慢慢来研究。里面大多是启用、禁用某些特性和功能模块或者配置某些模块需要的库的路径等信息。为了方便可以写一个简单的脚本来做这件事当然这个不是必需的。    PATH/usr/win32-branch/bin:$PATH /  PKG_CONFIG_PATH/usr/win32-branch/lib/pkgconfig /  CPPFLAGS”-I/usr/win32-branch/include -I/usr/win32-branch/include/ebml” /  LDFLAGS-L/usr/win32-branch/lib /  CC”gcc -mno-cygwin” CXX”g -mno-cygwin” /  ./configure /      –hosti686-pc-mingw32 /      –disable-gtk /      –enable-nls –enable-sdl –with-sdl-config-path/usr/win32-branch/bin /      –enable-ffmpeg –with-ffmpeg-mp3lame –with-ffmpeg-faac /      –with-ffmpeg-zlib –enable-faad –enable-flac –enable-theora /      –with-wx-config-path/usr/win32-branch/bin /      –with-freetype-config-path/usr/win32-branch/bin /      –with-fribidi-config-path/usr/win32-branch/bin /      –enable-live555 –with-live555-tree/usr/win32-branch/live.com /      –enable-caca –with-caca-config-path/usr/win32-branch/bin /      –with-xml2-config-path/usr/win32-branch/bin /      –with-dvdnav-config-path/usr/win32-branch/bin /      –disable-cddax –disable-vcdx –enable-goom /      –enable-twolame –enable-dvdread /      –enable-release  –enable-dca /      –enable-mkv  /      –enable-quicktime  –enable-mozilla /      –with-mozilla-sdk-path/usr/win32-branch/gecko-sdk /      –enable-mostly-builtin /      make         例如把这个文件保存为 ‘mybuild’等bootstrp运行结束之后我们只需要运行一下 mybuild就会开始配置和编译了。这通常需要挺长的时间如果运气好在漫长的等待之后make运行成功vlc就编译好了。直接双击主目录里边的vlc.exe应该就可以运行了。     为了方便可以把它打包最简单的是 ‘make package-win32-base’它将创建一个子目录来存放所有运行所需的东西这个目录就是一个绿色版的VLC啦。     当然如果你运气没那么棒可能会碰到各种各样的错误例如在boottrap或者configure中出错通常是因为没安装某个库或者库的版本不合适也可能碰到编译的错误尝试去google一下。     本文参考 http://wiki.videolan.org/Win32CompileCygwinNew 三、Linux平台编译     先下载源代码把源代码解压之后也是先运行一下bootstrap看看缺什么工具没有例如gcc、make、libtool、automake、autoconfig等是否有合适的版本。如果不合适的话就用你喜欢的方式去升级或者安装。     下面最麻烦的一步来了。VLC在Linux上没有给出和Windows上类似的第三方库的预编译包你必须去自己获得并编译这些库。这些库的数量取决于你的配置选项。VLC给出了一个自动化的解决方案关注一下主目录/extras/contrib里边有一些工具来帮助你自动下载、patch和编译所有可能用到的第三方库。先运行一下那个目录下的bootstrap如果缺少***.mak的话可以到VLC的代码库中找一下是一个系统相关的文件然后简单的一句make就可以了。如果你对这些库比较熟悉的话最好先手动筛选一下有一些可能不是你所需要的而下载他们可能需要很长的时间。     在漫长的等待之后如果一切顺利我几乎不相信会这样这一步就算完成了。可能遇到的问题有下载实在太慢可以用其他下载工具把库的代码包下下来放到/extras/contrib/src里边如果下载一半断掉可以把那个不完整的文件删掉重新再运行make。     这一步做完之后和windows上的编译就几乎一样了。写一个配置脚本然后运行它。例如一个配置脚本        ./configure /      –enable-release /      –disable-skins2 /      –disable-wxwidgets /      –enable-mozilla /      –with-mozilla-sdk-path./gecko-sdk /      –disable-sout /      –disable-httpd /      –enable-live555 /      –disable-dvdnav /      –disable-libcdio /      –disable-libcddb  /      –disable-cdda  /      –disable-vcd  /      –disable-dvdread /      –disable-smb /      –disable-cmml /      –disable-alsa /      –disable-opengl /      –disable-png /      –disable-screen  /      –disable-mkv  /      –disable-mod  /      –disable-mpc  /      –disable-libtar  /      –disable-speex  /      –disable-visual  /      –disable-daap  /      –disable-bonjour  /      –disable-gnutls  /      –enable-faad /      –enable-mostly-builtin     配置完之后再运行make就可以了。     参考http://wiki.videolan.org/UnixCompile 四、使用 VLC的功能很强大它不仅仅是一个视频播放器也可作为小型的视频服务器更可以一边播放一边转码把视频流发送到网络上。 最简单的从界面打开一个文件播放也可以在命令行下使用如C:/Program Files/VideoLAN/VLCvlc.exe test.ts 获取内置的帮助会写到vlc-help.txtC:/Program Files/VideoLAN/VLCvlc.exe -h 获取更详细的帮助有大量的选项介绍C:/Program Files/VideoLAN/VLCvlc.exe -H 在线使用帮助 http://www.videolan.org/doc/play-howto/en/play-howto-en.html http://www.videolan.org/doc/streaming-howto/en/streaming-howto-en.html 搜索并显示可用的模块列表C:/Program Files/VideoLAN/VLCvlc.exe -l Windows下默认情况VLC的配置文件在 %APPDATA%/vlc/vlcrc%APPDATA%在XP下通常是 C:/Documents and Settings/用户名/Application Data Linux下在用户home目录的/.vlc/中 vlc的选项完全可以通过修改vlcrc来设置界面只是略微方便一点 重置所有选项到默认状态C:/Program Files/VideoLAN/VLCvlc.exe –reset-config VLC从vlcrc中指定的plugin-path以及当前目录的modules和plugins目录来递归查找pluginVLC的大部分功能都是通过plugin来实现的。VLC默认有大量的动态插件为了加快启动速度vlc会在%APPDATA%/vlc/cache中缓存plugin的列表选项plugins-cache0可以禁止缓存plugin 打开一个UDP组播流组播组 239.255.1.1端口 4567默认端口1234对于rtp协议VLC会自动识别写udp还是rtp都没问题 C:/Program Files/VideoLAN/VLCvlc.exe udp://239.255.1.1:4567 在本地UDP端口 888 接收流, “”表示绑定一个地址而不是连接该地址 C:/Program Files/VideoLAN/VLCvlc.exe udp://888 串流输出就是在播放的时候以某种方式向外传送视频在打开界面的串流/保存 中设置会比较方便。 例如循环播放test.ts 以rtp方式传送到224.1.1.1端口1234, 同时显示视频 vlc.exe test.ts –loop :sout#duplicate{dststd{accessrtp,muxts,dst224.1.1.1:1234},dstdisplay} 例如接收UDP端口888数据全部保存到C:/dump.ts vlc.exe udp://888 :demuxdump :demuxdump-file”C:/dump.ts” 关于Windows下视频输出模块 Direct3D 效果比DirectX差一点但是方便截图也可以在图像上实现alpha DirectX效果最好利用DirectX的显示加速 OpenGL在不同的硬件上表现不太一样 WinGDI最慢的一种不需要显卡加速 caca用彩色的Assic字符来显示 临时启用某个视频输出可以这样C:/Program Files/VideoLAN/VLC-0.8.6evlc test.ts –voutcaca ActiveX控件 官方发布的VLC自带ActiveX控件 axvlc.dll注册之后可以方便的在应用程序和网页中使用VLC注册的办法是 C:/Program Files/VideoLAN/VLC-0.8.6eregsvr32 axvlc.dll ActiveX VLC的使用方法可以参考源代码中ActiveX目录的README.TXT和test.htmlActiveX控件的接口有第一版和第二版第一版简单功能少已经不再维护建议用第二版本功能多一点 Mozilla Plugin 你还可以在Windows和Linux的Firefox中使用VLC。Windows下可以在安装VLC的时候选上Mozilla plugin事实上它做的就是在HKLM_Software_MozillaPlugin键下添加一个VLC的子键。Linux下可以把libvlcplugin.so或者叫npvlc.so和插件目录放到Firefox的plugins目录来使之生效。 同样这适用于基于Xulrunner的应用程序事实上像 Miro、SongBird等xul应用都是用的这个插件。与ActiveX类似的VLC的Mozilla Plugin也有两套接口建议用新的第二版。 注册表 在Windows下VLC只使用很少量的注册表的信息最重要的一条是HKLM_Software_VLC键下的InstallDir项VLC的Mozilla Plugin和ActiveX控件通过这一项来定位其插件的目录。Telnet、Http控制对VLC来说控制界面都是Interface类的模块你可以使用各种控制模块。Windows下默认使用的是wxwidgets图形界面还可以使用http、telnet等界面来远程控制VLC如果用VLC在服务器上专门作视频流转发一类的事情这种远程界面可以帮上大忙。 视频过滤器 0.8系列中有多达13种视频过滤器为视频添加各种效果和特殊处理。 Skin2界面 一个漂亮一点的可以换肤的界面。 其他的 播放DVD、VCD光盘打开DirectShow设备播放当前屏幕… 一些问题 目前的VLC无法播放Real视频如rm、rmvb。其实从0.9版本的VLC开始可以依赖其他解码器播放。但就目前测试的情况来看顺序播放没问题但是拖动则效果很差。RTSP的播放拖动有问题在获取播放位置时有缺陷。例如和达尔文服务器的配合。 五、视频播放的基本原理     几乎所有的视频播放器如VLC、MPlayer、Xine包括DirectShow在播放视频的原理和架构上都是非常相似的理解这个对理解VLC的源码会有事半功倍的效果。     大致的来说播放一个视频分为4个步骤     1. acess 访问或者理解为接收、获取、得到     2. demux 解复用就是把通常合在一起的音频和视频分离(还有可能的字幕)       3. decode 解码包括音频和视频的解码     4. output 输出也分为音频和视频的输出aout和vout     拿播放一个UDP组播的MPEG TS流来说吧access部分负责从网络接收组播流放到VLC的内存缓冲区中access模块关注IP协议如是否IPv6、组播地址、组播协议、端口等信息如果检测出来是RTP协议RTP协议在UDP头部简单得加上了固定12个字节的信息还要分析RTP头部信息。这部分可以参看VLC源码 /modules/access/udp.c。在同目录下还可以看到大量的access模块如file、http、dvd、ftp、smb、tcp、dshow、mms、v4l…等等     而demux部分首先要解析TS流的信息。TS格式是MPEG2协议的一部分概括地说TS通常是固定188字节的一个packet一个TS流可以包含多个program节目一个program又可以包含多个视频、音频、和文字信息的ES流每个ES流会有不同的PID标示。而又为了可以分析这些ES流TS有一些固定的PID用来间隔发送program和es流信息的表格PAT和PMT表。关于TS格式的详细信息可以去google一下。VLC专门做了一个独立的库libdvbpsi来解析和编码TS流而调用它的代码可以参见VLC源码 /modules/demux/ts.c。     其实之所以需要demux是因为音视频在制作的时候实际上都是独立编码的得到的是分开的数据为了传输方便必须要用某种方式合起来这就有了各种封装格式也就有了demux。demux分解出来的音频和视频流分别送往音频解码器和视频解码器。因为原始的音视频都是占用大量空间而且冗余度较高的数据通常在制作的时候就会进行某种压缩。这就是我们熟知的音视频编码格式包括MPEG1VCD、MPEG2DVD、MPEG4、H.264、rmvb等等。音视频解码器的作用就是把这些压缩了的数据还原成原始的音视频数据。VLC解码MPEG2使用了一个独立的库libmpeg2调用它的源文件是 /modules/codec/libmpeg2.c。VLC关于编解码的模块都放在/modules/codec目录下其中包括著名的庞大的ffmpeg。     解码器例如视频解码器输出的是一张一张的类似位图格式的图像但是要让人从屏幕看得到还需要一个视频输出的模块。当然可以像一个Win32窗口程序那样直接把图像画到窗口DC上——VLC的一个输出模块WinGDI就是这么干的但是通常这太慢了而且消耗大量的CPU。在Windows下比较好的办法是用DirectX的接口会自动调用显卡的加速功能。     这样的功能分解使得模块化更容易一点每个模块住需要专注于自己的事从整体来说功能强大而且灵活。     但是事情总是不会那么简单。就拿access来说媒体的访问是分层的如RTSP就涉及到IPv4、TCP、UDP、RTCP、RTSP等多个层次的协议。有些视频格式包括了传输、封装格式和编辑码格式如MPEG系列有些封装格式是独立的容器但是很多人会误解它是编解码格式如mkv、avi这些。     音频和视频在demux之后就是独立的但是需要有一套机制把它们同步起来。同时我们需要有一套机制来控制速度、暂停、停止、跳进获取各种媒体信息这些都是很复杂而又很重要的事情。     另外也许需要在某个地方插入一些修改来实现某种效果。如音频的EQ视频的亮度调整之类的VLC专门设计了access_filter、audio_filter和video_filter类型的模块来做这一类事情。     VLC比较独特的地方是集成了原来的VLS的功能这依赖于VLC中stream_output类型的模块它们可以把正在播放的视频以某种方式重新转码和发送出去如http、UDP、文件等等。     MPlayer的结构与此是类似的如/stream目录对应的是access的功能/mpdemux对应的demux功能/libmpcodecs是解码器/libvo和/libao2分别是视频和音频的输出。     DirectShow也是类似的不过分类更多一些更复杂一点。DirectShow里面的模块叫做“filter”filter之间通过”pin”来连接。access的模块对应于DirectShow中的SourceFIlter这一类Filter只有输出pin没有输入pin。demux模块对应于splitter filter这种filter有一个输入pin多个输出pin。解码模块是一类transform filter有一个输入pin、一个输出pin输出模块对应于readering filter有一个输入pin没有输出pin。当然transform filter不一定是解码器也可能是某种其他的处理。     另外给出一个VLC的API Document参见http://rogerfd.cn/doc/vlcapi.htm 六、精简     VLC默认包含了大量的功能超过2百个插件Windows下安装包大小接近10MB安装之后超过35MB。有时候如果我们只需要部分的功能应该如何精简它呢     精简VLC的第一步是重新配置编译选项将不需要的功能去掉。一个精简配置脚本如下       PATH/usr/win32-branch/bin:$PATH /   PKG_CONFIG_PATH/usr/win32-branch/lib/pkgconfig /   CPPFLAGS”-I/usr/win32-branch/include -I/usr/win32-branch/include/ebml” /   LDFLAGS-L/usr/win32-branch/lib /   CC”gcc -mno-cygwin” CXX”g -mno-cygwin” /   ./configure /      –with-freetype-config-path/usr/win32-branch/bin /      –with-fribidi-config-path/usr/win32-branch/bin /      –disable-ffmpeg /      –disable-live555 /      –disable-cddax /      –disable-vcdx /      –disable-skins2 /      –disable-wxwidgets /      –disable-mozilla /      –disable-httpd /      –disable-dvdnav /      –disable-libcdio /      –disable-libcddb  /      –disable-cdda  /      –disable-sdl /      –disable-sdl-image /      –disable-vcd  /      –disable-dvdread /      –disable-smb /      –disable-cmml /      –disable-alsa /      –disable-opengl /      –disable-png /      –disable-screen  /      –disable-mkv  /      –disable-mod  /      –disable-mpc  /      –disable-libtar  /      –disable-speex  /      –disable-visual  /      –disable-daap  /      –disable-bonjour  /      –disable-gnutls  /      –disable-vorbis /      –disable-real  /      –disable-xml  /      –disable-x264 /      –enable-sout /      –enable-activex /      –enable-release          从这个脚本可见主要是禁用了大量的功能。运行 ./configure -h 可以显示每一个配置项的意义如果还不清楚可以再去搜一下选项对应的库的位置。ffmpeg是一个庞大的编解码库但是MPEG2的解码可以利用另一个库libmpeg2所以在这里不需要它。      注意make完之后要用make package-win32-base来打一下包打包时会用strip工具来压缩每一个可执行文件。      但是这样还没有结束。配置项并不是很全面的而且还会有一些小问题例如xml禁用了还会有。。。于是还需要手动的清理一下plugins目录里面的插件挑出没有用处的这也需要对VLC模块的熟悉。或者使用Roger的笨方法一个一个试对功能没有影响的就拿掉。SImpleTV0.4所使用的plugin如以下所示        liba52sys_plugin.dll                  liba52 用于AC3格式的音频解码CCTV高清频道需要     liba52tofloat32_plugin.dll     liba52tospdif_plugin.dll     liba52_plugin.dll     libaccess_file_plugin.dll             文件访问播放文件需要     libaccess_http_plugin.dll             HTTP访问模块     libaccess_output_file_plugin.dll      sout的文件模块用于录制     libaccess_udp_plugin.dll              UDP访问模块     libaout_directx_plugin.dll            DirectX的声音输出默认的声音输出模块     libdeinterlace_plugin.dll               解交错的vout-filter模块     libdirect3d_plugin.dll                  Direct3D视频输出模块在上面可以半透明。。。     libfixed32tofloat32_plugin.dll        一些数据转换模块     libfixed32tos16_plugin.dll     libfloat32tos16_plugin.dll     libfloat32tos8_plugin.dll     libfloat32tou16_plugin.dll     libfloat32tou8_plugin.dll     libfloat32_mixer_plugin.dll     libglwin32_plugin.dll                  OpenGL视频输出模块     libi420_ymga_plugin.dll     libi422_yuy2_plugin.dll     libipv4_plugin.dll                    IPv4网络模块     libipv6_plugin.dll                    IPv6网络模块     liblibmpeg2_plugin.dll                libmpeg2解码全靠它     liblogger_plugin.dll                  日志模块调试必备     libmemcpy_plugin.dll                  好像是利用各种CPU指令加速内存拷贝的     libmpeg_audio_plugin.dll              MPEG音频的解码模块     libmpgatofixed32_plugin.dll     libmpga_plugin.dll     libmux_dummy_plugin.dll     libpacketizer_mpegvideo_plugin.dll     libs16tofixed32_plugin.dll     libs16tofloat32swab_plugin.dll     libs16tofloat32_plugin.dll     libs8tofloat32_plugin.dll     libsimple_channel_mixer_plugin.dll     libstream_out_display_plugin.dll      sout的模块 。。。     libstream_out_duplicate_plugin.dll     libstream_out_standard_plugin.dll     libtrivial_channel_mixer_plugin.dll     libtrivial_mixer_plugin.dll     libtrivial_resampler_plugin.dll     libts_plugin.dll                         TS流的解复用模块     libu8tofixed32_plugin.dll     libu8tofloat32_plugin.dll     libugly_resampler_plugin.dll     libvout_directx_plugin.dll            DirectX视频输出模块     libwingdi_plugin.dll                     GDI视频输出模块       作为ActiveX控件的VLC只需要这些模块和axvlc.dll就足够了。当然如果使用了libvlc.dll还要带上。 VLC 0.9.2 正式发布 VLC播放Rm Rmvb的插件     新的VLC加入了RealVideo的demux和codec module已经可以播放rm、rmvb格式的real视频但是需要下载以下两个附件     pncrt.dll 拷贝到 C:/Program Files/VideoLAN/VLC/     drv43260.dll 拷贝到 C:/Program Files/VideoLAN/VLC/plugins/     这两个文件也可以从MPlayer的win32 codec中拷贝出来。从测试的情况来看顺序播放没有什么问题但是跳转的时候比较慢图像不太稳定     这里有对VLC新特性的介绍 http://wiki.videolan.org/What_is_cool_in_0.9     Release Notehttp://www.videolan.org/developers/vlc/NEWS    下载目录http://download.videolan.org/pub/vlc/0.9.2/win32/    下载链接exehttp://download.videolan.org/pub/vlc/0.9.2/win32/vlc-0.9.2-win32.exe 七、将VLC嵌入自己的应用     总的来说把VLC内嵌入自己的应用有4种途径 •直接调用VLC进程 •VLC的plugin for Mozilla •VLC的ActiveX插件 •调用libvlc     当然理论上也可以把VLC的源码直接扣出一部分来放到自己的程序中不过这种方法难度太大没多大意义。     先说第一种办法别怀疑这是非常有用的一种解决方案特别是对于转码、流转发等应用通常直接调用VLC就可以了。VLC有HTTP和Telnet的Interface模块就是和用户交互的界面也很方便和远程交互。而且跨平台应用也非常方便只需要安装不同平台的VLC就行了。直接调用VLC的话最重要的就是参数可以从 vlc.exe -H 中获取比较详细的命令行参数介绍。对于转码、转发的命令行参数会比较复杂可以用GUI先试一下然后把界面上的Generated stream output string拷下来。     VLC的Mozilla plugin除了用于Firefox的web页之外还可以用于任何XUL-base的应用这种应用通常使用xulrunner来启动。XUL是一种用XML来写界面的语言有点像HTML而且也兼容大部分HTML标记Firefox就是用XUL来写的。VLC的Mozilla插件通常用Javascript来控制详细的接口文档可以参考这里 http://www.videolan.org/doc/play-howto/en/ch04.html#id310965 这个接口有比较老的第一版和比较新的第二版建议用新的功能多一些。用VLC的Mozilla插件的应用并不少例如比较出名的Miro、Songbird。因为这个好处是显而易见的跨平台、可控性强、使用简单限制也很明显专为Mozilla设计应用的范围很窄。     VLC的ActiveX插件只能用于Windows平台当然这是因为ActiveX只是微软的东西。但是不得不说这个还是很好用的。无论是C、C#、VB还是网页都可以轻松地将这个ActiveX利用起来。关于这个的VLC官方文档在这里http://wiki.videolan.org/ActiveX_Controls 开发、使用之前别忘了先要注册ActiveX控件方法是运行 regsvr32 axvlc.dll。Roger 之前写的 SimpleTV 就是调用了VLC的ActiveX控件所以这也可以作为一个示例的代码可以主要看看怎么调用这个控件来做串流的代码   //Create Option for the plugin   bool bIPv6 false;   if (strstr (szMRL, “::”))   {     bIPv6 true;   }   tagVARIANT opt,var,ip6;   CString sout, ipv6 “ipv61″;   SAFEARRAY *psa;   long index;   SAFEARRAYBOUND bound[1] {0};   bound[0].cElements bIPv6 ? 2 : 1;   if (m_cfg.bDisplayWhenRecording)   {     sout.Format(”sout#duplicate{dstdisplay,dststd{accessfile,muxts,dst/”%s/”}}”,       strName);   }   else   {     sout.Format(”sout#duplicate{dststd{accessfile,muxts,dst/”%s/”}}”, strName);   }   var.vt VT_BSTR;   var.bstrVal sout.AllocSysString();   psa SafeArrayCreate (VT_VARIANT, 1, bound);   index 0;   SafeArrayPutElement (psa, index, var);   if (bIPv6)   {     ip6.vt VT_BSTR;     ip6.bstrVal ipv6.AllocSysString();     index 1;     SafeArrayPutElement (psa, index, ip6);   }   opt.vt     VT_ARRAY | VT_BSTR;   opt.parray psa;   tagVARIANT nul;   nul.vt VT_NULL;   m_vlc.GetPlaylist ().add (szMRL, nul, opt);   m_vlc.GetPlaylist ().next ();   m_vlc.GetPlaylist ().play ();        很多人调用VLC的ActiveX控件都会遇到一个问提就是播放没有反应。大部分的原因都是因为plugins的问题。VLC作为exe运行时会递归搜索当前目录下的modules和plugins目录来寻找plugin但是当以ActiveX控件运行时默认只会检查注册表的HKLM_Software_VideoLan_VLC_InstallDir并添上plugins作为模块搜索路径如果这个路径没有设置或者设置不对VLC将找不到大部分的模块导致大部分功能缺失而无法运行。如果需要修改这一特性可以修改 /activex/plugin.cpp 0.8.6i中的 VLCPlugin::getVLC函数。在SimpleTV中Roger修改的一个片段是 char  p_pluginpath[MAX_PATH1]; int   iTmp   0; /* 得到SimpleTV.exe的全路径 */ DWORD dwLen  GetModuleFileNameA (NULL, p_pluginpath, MAX_PATH); for (iTmp strlen(p_pluginpath) – 1; iTmp 0; — iTmp) {   if (p_pluginpath[iTmp] ‘//’)   {     p_pluginpath[iTmp] 0;     break;   } } /* 将模块路径设为SimpleTV下的 player/modules */ strcat (p_pluginpath, “//player//modules“); ppsz_argv[ppsz_argc] “–plugin-path”; ppsz_argv[ppsz_argc] p_pluginpath;        还有一点是配置文件vlcrc的路径如果需要修改的话可以修改 src/misc/configuration.c 中的 GetDir 函数 在Windows下这个目录默认返回 %APPDATA% 以上两步做好的话其实就可以做出一个Portable的绿色版VLC了。     和其他ActiveX的播放器例如WMP、QuickTime、RealPlayer相比VLC的优点也很明显自带所需解码器、开源、功能强大。     当然ActiveX方式和Mozilla 插件的方式也是有局限性的这样的方式功能还不够强大例如没有截屏的接口…如果需要更多完整的功能可以考虑直接调用libvlc的接口 VLC官方提供了一些文档和例子 http://wiki.videolan.org/Libvlc。这里还有一个用C#调用libvlc的例子http://jeremiah.blog.51cto.com/539865/116981     在Windows下libvlc可能默认是不编译的0.8.6i可以在configure中开启这一选项 –enable-shared-libvlc     完整的VLC体积还是不小的如果只需要VLC一部分功能的话可以最后做一下精简。
http://www.pierceye.com/news/711611/

相关文章:

  • 小辰青岛网站建设自己怎么开网站
  • 天津市建设工程合同备案网站网站建设 开发 模板
  • 外贸网站建设公司报价jsp网站建设技术案例
  • 旅行社英文模板网站织梦 网站迁移
  • 北京网站开发不限年龄伊春建设银行网站
  • 通辽公司做网站网站常规seo优化步骤
  • 成都集团网站设计推荐夫唯seo系统培训
  • 服务器有了网站怎么做的零食进货渠道网
  • 网站建设的学习方法桔子建站
  • 公司网站开通长沙免费网站建站模板
  • 汕头手机建站模板建设工程合同司法解释一
  • 品牌网站建设基本流程中山外发加工网
  • 网站迁移教材xyz域名的网站有哪些
  • 茂名公司网站开发tp框架做视频网站
  • 专门做家教的网站优秀网站设计赏析
  • 美食网站的建设背景婚庆网站建设
  • 榆社网站建设销售新品牌如何推广
  • 网站制作的公司哪家比较好网页作图软件
  • 网站开发质保动态wordpress动态主题
  • 建公司网站设计网站公司百度后台登录
  • 响应式网站开发方法建设汽车行业网站
  • 51ppt模板免费下载网站浏览器下载大全免费下载
  • 阳西县建设局网站.net网站项目有哪些
  • 门户网站优化网站建立软件
  • 贵阳网站建设在哪里陕西省住房城乡建设部门户网站
  • 深圳网站建设799元起全包域名企业网站分为哪四类
  • 潍坊网站建设公司商城网站建设建站系统
  • 苏州区网站建设网站前台乱码
  • 网站设计公司企业邮箱青岛网站制作工具
  • 网站建设 html5wordpress 关注公众号