当前位置:文档之家› vlc做流媒体播放器(里面有好多知识点哦亲)

vlc做流媒体播放器(里面有好多知识点哦亲)

vlc做流媒体播放器(里面有好多知识点哦亲)
vlc做流媒体播放器(里面有好多知识点哦亲)

vlc的应用之一:在命令行下的使用

2008-11-28 13:45:34

标签:command休闲line职场vlc

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.doczj.com/doc/4117928286.html,/539865/115910

如果编译得到没有界面的vlc,双击运行后就没法手动选打文件或网络了。在这介绍几个vlc的命令行命令。

1. vlc帮助

vlc --help

or

vlc --help --advanced

2. vlc的debug log

vlc -vv --extraintf=logger

运行的log将会保存在vlc-log.txt中。

3. vlc打开文件

vlc -vv --extraintf=logger d:/01.avi

4. 作为服务器通过rtp往客户端发送ts流

vlc -vvv --extraintf=logger d:/01.avi :sout=#duplicate{dst=rtp{dst=localhost,m ux=ts,port=1234}}

5. 作为客户端接收rtp流

vlc -vv --extraintf=logger rtp://@:1234

vlc的应用之二:vlc的ActiveX及cab

2008-11-28 15:38:01

标签:vlc休闲cab职场ActiveX

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.doczj.com/doc/4117928286.html,/539865/115943

2009-05-14补充:8. Activex的卸载;9. 让vlc自动安装Activex ;10. 关于vlc的Activex的说明。

vlc自带了ActiveX控件--axvlc.dll,在编译完vlc之后的activex文件夹下。ActiveX是个好东西,axvlc.dll可以随意放到任何位置,成功注册之后可以方便的应用在程序和网页之中。可以参考activex文件夹下的test.html和README.TXT。ActiveX控件的接口有第一版和第二版,第一版简单,功能少,已经不再维护建议用第二版本,功能多一点。(参考的[1])

vlc-0.8.6i和vlc-0.9.4的ActiveX注册方法略有不同。

做ActiveX的网页测试之前需要把Internet选项-->安全-->本地Intranet 的安全级别调到最低。Jeremiah的网页测试环境是IE7,其他浏览器未进行测试。

1. vlc-0.8.6i的ActiveX注册

在E:下新建文件夹vlc-0.8.6iActiveX,拷贝vlc-0.8.6i目录下的plugins,libvlc.dll,activex/axvlc.dll到vlc-0.8.6iActiveX/dlls目录下,拷贝activex/test.html到vlc-0.8.6iActiveX下。新建文本文件install.bat 内容如下:

regsvr32 dlls\axvlc.dll

双击install.bat后会提示“dlls\axvlc.dll中的DllRegisterServer成功”。然后用打开test.html,文本框输入MRL就可以播放了。

2. vlc-0.9.4的ActiveX注册

0.9.4不光要告诉计算机vlc的axvlc.dll的位置,还要告诉注册表installdir的位置,也就是libvlc.dll的位置

在E:下新建文件夹vlc-0.9.4ActiveX,拷贝vlc-0.9.4目录下的plugins,libvlc.dll,libvlccore.dll,activex/axvlc.dll到vlc-0.9.4ActiveX/dlls 目录下,拷贝activex/test.html到vlc-0.9.4ActiveX下。新建文本文件install.reg内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\VideoLAN\VLC]

"InstallDir"="E:\\vlc-0.9.4ActiveX\\dlls"

新建文本文件install.bat内容如下:

regsvr32 dlls\axvlc.dll

regedit /s install.reg

双击install.bat后就可以用test.html进行测试了。

3. 一点点小提示

如果注册成功,但是test.html播放文件的时候会报错说decoder modules 会找不到之类信息,那请将0.8.6i和0.9.4交替注册,可能会解决这个问题。(Jeremiah因为这个问题搞了一天,NND)(2009-05-14补充:直接看8吧,以前这个地方写的不大对。)

4. 制作cab文件

如果要类似与test.html作个播放器服务器,但是我们却不能手动操纵客户

端去下载注册vlc的ActiveX,解决方法就是自己制作cab文件。

(1) 到本日志的附件(cabsdk.rar)或者以下地址去下载cabsdk.exe:[url]https://www.doczj.com/doc/4117928286.html,/download/platformsdk/cab/2.0/w98nt 42kmexp/en-us/cabsdk.exe[/url]

(2) 安装cabsdk.exe

(3) 将axvlc.dll及vlc的安装文件拷贝到cabsdk安装路径/BIN/ 下。Jeremiah这里用的是vlc-0.8.6i-win32.exe。(关于如何制作vlc的安装文件,参考日志《windows平台下vlc编译之二:vlc-0.8.6i的编译》)

(4) 在/BIN下新建文本文件axvlc.inf,内容如下:

; Version number and signature of INF file.

;

[version]

signature="$CHICAGO$"

AdvancedINF=2.0

[Add.Code]

vlc-0.8.6i-win32.exe

axvlc.dll=axvlc.dll

[axvlc.dll]

FileVersion=0,8,6,0

clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}

RegisterServer=no

hook=nsiinstaller

[vlc-0.8.6d-win32.exe]

FileVersion=0,8,6,0

file-win32-x86=thiscab

[nsiinstaller]

run=%EXTRACT_DIR%\vlc-0.8.6i-win32.exe

注意:请根据安装文件的版本修改此文件。

(5) 命令行到BIN目录下,执行以下命令生成cab文件:

CABARC.EXE N axvlc.cab axvlc.inf axvlc.dll vlc-0.8.6i-win32.exe

5. cab文件的使用

html页面下使用cab文件可以通过以下方式:

codebase="your/path/of/cabfile/axvlc.cab"

width="640" height="480" id="vlc" events="True">

这样web客户端无须手动注册axvlc.dll就可以使用了。

6. 一点比较严重小问题

由于vlc的安装文件一般是比较大,所以制作出来的cab文件也是很大的,在网络带宽不是很好的时候,光下载这个cab可能就很长很长时间,基本上可以说这样的方式是行不通的。所以我们需要根据自己的业务需求去精简vlc。Jeremiah将在下一篇日志介绍。

7. C#下使用vlc的ActiveX

vs2005新建一个windows应用程序,在左侧工具箱右键-->选择项-->com

组件-->VideoLAN VLC ActiveX plugin v2,工具箱里面就添加了vlc的ActiveX 控件,可以在窗体里面随便画了。

调用函数如下:

private void button1_Click(object sender, EventArgs e)

{

//输入参数

string parameter = ":sout=#duplicate{dst=display} :no-overlay";

//判断是否正在播放

if (this.axVLCPlugin21.playlist.isPlaying)

{

//如果正在播放, 则停止

this.axVLCPlugin21.playlist.stop();

}

//清空播放列表

this.axVLCPlugin21.playlist.clear();

//添加播放列表

this.axVLCPlugin21.playlist.add(textBox1.Text, null, parameter);

//播放列表更新到新添加的播放项

this.axVLCPlugin21.playlist.next();

//播放

this.axVLCPlugin21.playlist.play();

}

其他函数调用参考activex/README.TXT。

Jeremiah在附件里面提供了一个简单的调用程序

(WindowsApplication1.rar),不过需要注意的是,在用它测试0.9.4的ActiveX,当正常播放文件时点击X关闭窗口产生异常,电脑会重新启动。在主窗体的FormClosing事件中让主线程睡了1000ms,并不能完全保证电脑不重启,所以请根据自己的情况进行本附件的调试。

8. Activex的卸载

卸载是安装的反向操作,知道怎么安装,卸载很简单。

vlc-0.8.6i的Activex的卸载:新建uninstall.bat,内容如下:

regsvr32 dlls\axvlc.dll /u

vlc-0.9.4的Activex的卸载:新建uninstall.reg,内容如下:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\VideoLAN]

新建uninstall.bat,内容如下:

regsvr32 dlls\axvlc.dll /u

regedit /s uninstall.reg

双击uninstall.bat,提示dlls\axvlc.dll中的DllUnregisterServer成功。就卸载完毕了。

9. 让vlc安装的时候自动安装Activex

4里面提到cab包的制作及5里面提到了cab包的使用。cab其实就是让客户自动下载vlc的安装文件,然后启动安装。但是安装过程中,出现这样一步:

Activex plugin默认是没有被选中的,如何让它这一步默认是选中的,或者选中并且是灰色的(比如像Media Player这一项),不让客户改变呢?我们

需要修改编译完的vlc的vlc.win32.nsi文件。然后用它重新制作

vlc-0.9.4-win32.exe.

具体修改过程如下:

在vlc.win32.nsi文件中,找到:

Section /o $Name_Section04 SEC04

SectionIn 3

修改为:

Section $Name_Section04 SEC04

SectionIn 1 2 3

或者在1 2 3后面加入“空格RO”,表示这项是必须的不能去掉,就是选中并且是灰色的。$Name_Section04可以替换为"My ActiveX plugin (required)"等自己的名字。

然后根据前面博客讲的制作vlc-0.9.4-win32.exe的过程执行一遍,然后再制作cab包就okay了。

10. 关于vlc的Activex的说明

根据我对vlc的Activex的使用,发现这个Activex做的真是不好,很多方法没有封装进来,如果扩展这个Activex,工作量不小。如果是做C/S程序,强烈不建议用Activex来开发。除非是想简单做一下,快速开发等。做C/S播放器还是看我这篇博客:《vlc的应用之三:动态调用vlc-0.9.4的libvlc.dll》,开发过程虽然慢点,但是比较可控。Activex只适合应用于B/S项目,只适合WEB 开发,这是Jeremiah的一点忠告,但是只属于个人意见,仅供参考。

参考网址:

1. [url]https://www.doczj.com/doc/4117928286.html,/?p=157[/url]

2. [url]https://www.doczj.com/doc/4117928286.html,/ActiveX/HTML[/url]

3. [url]https://www.doczj.com/doc/4117928286.html,/ActiveX[/url]

4.

[url]https://www.doczj.com/doc/4117928286.html,/viewtopic.php?f=14&t=48812&p=155832&hilit=regsvr#p15 6070[/url]

5. [url]https://www.doczj.com/doc/4117928286.html,/blog2/zyjzyj2000/10184.html[/url]

vlc的应用之三:动态调用vlc-0.9.4的libvlc.dll

2008-12-03 17:38:46

标签:WinForm C#休闲libvlc.dll vlc

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.doczj.com/doc/4117928286.html,/539865/116981

vlc-0.9.4提供的libvlc.dll是可以动态调用的,Jeremiah这一篇博客就介绍下如何用C#和WinForm框架调用libvlc.dll作个简易播放器。

1. vs2005新建工程,将vlc-0.9.4的libvlc.dll,libvlccore.dll,plugins 目录全部拷贝到工程目录下面\bin\Debug中。

2. 创建异常结构体

using System;

using System.Collections.Generic;

using System.Text;

namespace MyOwnPlayer

{

//异常结构体

public struct ExceptionStruct

{

private int raised;

private int code;

private string message;

}

class MediaException

{

}

}

3. CoreHandle和Core类

using System;

using System.Runtime.InteropServices;

namespace MyOwnPlayer

{

class CoreHandle : SafeHandle

{

//构造方法

public CoreHandle()

: base(IntPtr.Zero, true)

{

}

//重写的方法

public override bool IsInvalid

{

get { return handle == IntPtr.Zero; }

}

protected override bool ReleaseHandle()

{

if (!IsInvalid)

{

libvlc_release(this);

handle = IntPtr.Zero;

}

return true;

}

protected override void Dispose(bool disposing)

{

ReleaseHandle();

base.Dispose(disposing);

}

//Dll动态导入

[DllImport("libvlc")]

private static extern void libvlc_release(CoreHandle coreHandle);

}

}

using System;

using System.Runtime.InteropServices;

namespace MyOwnPlayer

{

class Core

{

//coreHandle字段和属性

private CoreHandle coreHandle;

public CoreHandle CoreHandle

{

get { return coreHandle; }

}

//构造方法

public Core(string[] argv, ref ExceptionStruct ex)

{

coreHandle = libvlc_new(argv.Length, argv, ref ex);

}

//Dll动态导入

[DllImport("libvlc")]

private static extern CoreHandle libvlc_new(int argc, string[] args, ref ExceptionStruct ex);

}

}

3. MediaHandle和Media类,注意里面的非英文路径处理方法。

using System;

using System.Runtime.InteropServices;

namespace MyOwnPlayer

{

class MediaHandle : SafeHandle

{

//构造方法

public MediaHandle()

: base(IntPtr.Zero, true)

{

}

//重写的方法

public override bool IsInvalid

{

get { return handle == IntPtr.Zero; }

}

protected override bool ReleaseHandle()

{

if (!IsInvalid)

{

libvlc_media_release(this);

handle = IntPtr.Zero;

}

return true;

}

protected override void Dispose(bool disposing)

{

ReleaseHandle();

base.Dispose(disposing);

}

//Dll动态导入

[DllImport("libvlc")]

private static extern void libvlc_media_release(MediaHandle mediaHandle);

}

}

using System;

using System.Text;

using System.Runtime.InteropServices;

namespace MyOwnPlayer

{

class Media

{

//mediaHandle字段和属性

private MediaHandle mediaHandle;

public MediaHandle MediaHandle

{

get { return mediaHandle; }

}

//构造方法

public Media(CoreHandle coreHandle, String

filename, ref ExceptionStruct ex)

{

//c#为UTF-16编码, libvlc.dll为UTF-8编码, 需要转换.

UTF8Encoding utf8 = new UTF8Encoding();

mediaHandle = libvlc_media_new(coreHandle,

utf8.GetBytes(filename), ref ex);

}

//Dll动态导入

[DllImport("libvlc")]

private static extern MediaHandle libvlc_media_new

(CoreHandle coreHandle,

[MarshalAs(UnmanagedType.LPArray)] byte[] link, ref ExceptionStruct ex);

}

}

5. MediaPlayerHandle和MediaPlayer类

using System;

using System.Runtime.InteropServices;

namespace MyOwnPlayer

{

class MediaPlayerHandle : SafeHandle

{

//构造方法

public MediaPlayerHandle()

: base(IntPtr.Zero, true)

{

}

//重写的方法

public override bool IsInvalid

{

get { return handle == IntPtr.Zero; }

}

protected override bool ReleaseHandle()

{

if (!IsInvalid)

{

libvlc_media_player_release(this);

handle = IntPtr.Zero;

}

return true;

}

protected override void Dispose(bool disposing)

{

ReleaseHandle();

base.Dispose(disposing);

}

//Dll动态导入

[DllImport("libvlc")]

private static extern void libvlc_media_player_release(MediaPlayerHa ndle mediaPlayerHandle);

}

}

using System;

using System.Runtime.InteropServices;

namespace MyOwnPlayer

{

class MediaPlayer

{

//mediaPlayerHandle字段和属性

private MediaPlayerHandle mediaPlayerHandle;

public MediaPlayerHandle MediaPlayerHandle

{

get { return mediaPlayerHandle; }

}

//构造方法

public MediaPlayer(MediaHandle mediaHandle, ref ExceptionStruct ex)

{

mediaPlayerHandle =

libvlc_media_player_new_from_media(mediaHandle, ref ex);

}

//设置父窗口

public void VedioSetParent(CoreHandle coreHandle, IntPtr

hDT, ref ExceptionStruct ex)

{

libvlc_video_set_parent(coreHandle, hDT, ref ex);

}

//播放

public void Play(ref ExceptionStruct ex)

{

libvlc_media_player_play(mediaPlayerHandle, ref ex);

}

//停止

public void Stop(ref ExceptionStruct ex)

{

libvlc_media_player_stop(mediaPlayerHandle, ref ex);

}

//Dll动态导入

[DllImport("libvlc")]

private static extern MediaPlayerHandle

libvlc_media_player_new_from_media(MediaHandle

libvlc_media_handle, ref ExceptionStruct ex);

[DllImport("libvlc")]

private static extern void libvlc_video_set_parent(CoreHandle coreHandle, IntPtr hDT, ref ExceptionStruct ex);

[DllImport("libvlc")]

private static extern void libvlc_media_player_play(MediaPlayerHandl e mediaPlayerHandle,ref ExceptionStruct ex);

[DllImport("libvlc")]

private static extern void libvlc_media_player_stop(MediaPlayerHand le mediaPlayerHandle,ref ExceptionStruct ex);

}

}

6. 基本工作做好了。下一步建立一个Form,里面画一个Panel(播放容器),画一个Textbox(播放地址),画一个Button(播放按钮),Button的点击事件为:

private void button1_Click(object sender, EventArgs e)

{

//要播放的文件的uri

string uri = this.textBox1.Text;

//进行播放的控件的句柄

IntPtr hdl = this.panel1.Handle;

//播放参数

string[] argv = new string[] { "-I", "--ignore-config" };

//vlc对象的创建

ExceptionStruct ex = new ExceptionStruct();

Core core = new Core(argv, ref ex);

Media media = new Media(core.CoreHandle, uri, ref ex);

MediaPlayer player = new MediaPlayer(media.MediaHandle, ref ex);

//垃圾回收

GC.Collect();

//播放

player.VedioSetParent(core.CoreHandle, hdl, ref ex);

player.Play(ref ex);

//继续回收垃圾等相关操作

GC.Collect();

GC.WaitForPendingFinalizers();

}

7. 基本的播放功能就是这样实现的。其他接口请参考源码下面的

\include\vlc\libvlc.h文件,里面有比较详细的对外接口的说明。

8. 以上代码已经发送到附件中(MyOwnPlayer.rar),参考网址的楼主写的代码也在附件中(Marx_libvlc_wrapper(2).zip)。调试附件请注意第1步。

vlc的应用之五:动态调用libvlc.dll的补充

2009-03-09 15:16:17

标签:libvlc_new libvlc.dll WinForm vlc C#

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.doczj.com/doc/4117928286.html,/539865/136931

最近Jeremiah在增加以前播放器的功能的时候,被一个中文路径转码问题恶心了两天,最后终于让我给解决了。在这跟大家分享这个转码的解决方法,以及用视频本次存储的接口实现。

在看本篇日志之前,请先看我以前写的《vlc的应用之三:动态调用

vlc-0.9.4的libvlc.dll 》。

补充一:libvlc_new(...)接口的中文路径转码处理

using System;

using System.Runtime.InteropServices;

namespace MyOwnPlayer

{

class Core

{

//coreHandle字段和属性

private CoreHandle coreHandle;

public CoreHandle CoreHandle

{

get { return coreHandle; }

}

//构造方法

public Core(string[] argv, ref ExceptionStruct ex)

{

byte[][] argvbytes = new byte[argv.Length][];

for (int i = 0; i < argv.Length; i++)

{

argvbytes[i] = Encoding.UTF8.GetBytes(argv[i]);

}

coreHandle = libvlc_new(argv.Length, ReturnIntPtr(argvbytes, argv.Length), ref ex);

}

//转换函数

private IntPtr ReturnIntPtr(byte[][] data, int length)

{

IntPtr[] dataIntPtrArr = new IntPtr[length];

for (int i = 0; i < length; i++)

{

dataIntPtrArr[i] = Marshal.AllocHGlobal(data[i].Length * sizeof(byte));

Marshal.Copy(data[i], 0, dataIntPtrArr[i], data[i].Lengt h);

}

IntPtr dataIntPtr = Marshal.AllocHGlobal(length * Marshal.Siz eOf(typeof(IntPtr)));

Marshal.Copy(dataIntPtrArr, 0, dataIntPtr, length);

return dataIntPtr;

}

//Dll动态导入

[DllImport("libvlc")]

private static extern CoreHandle libvlc_new(int argc, IntPtr argv, re f ExceptionStruct ex);

}

}

补充二:本地存储。

对libvlc_new的argv进行转码的主要目的就是为了进行本地存储,由于要将存储路径传入到argv中,所以要对中文的存储路径进行转码。下面的做法是将视频流默认存储为ts流,边播放边存储。

//avPath是本地存储路径,需要注意路径的\和/的问题。

argv = new string[] { "--sout=#duplicate{dst=display,dst=std{access=file,mu x=ts,dst=" + avPath + "}}" };

//其他的就跟上一篇博客一样了。

core = new Core(argv, ref ex);

media = new Media(core.CoreHandle, link, ref ex);

player = new MediaPlayer(media.MediaHandle, ref ex);

player.Play(ref ex);//一面播放一面存储

关于其他形式的argv,可以在vlc的存储里面获得。vlc -> 媒体 -> convert/save -> 转换/保存。根据选择不同的形式,在vlc界面的下半部分会有Generated stream output string。这个就是具体的argv。不过,请注意将:sout 换成--sout。

蓝牙车载音频流播放器的设计与实现

蓝牙车载音频流播放器的设计与实现 现在的车载信息娱乐系统中标准配置有带CD 播放功能的收音机、液晶屏,其他可选配置有GPS 和蓝牙免提装置等设备。随着蓝牙技术在音视频传输中的应用,一种可以增强用户娱乐体验的蓝牙音频流播放功能正逐步在车载信息娱 乐系统中得到应用。蓝牙音频流播放功能是指将蓝牙MP3 或蓝牙手机上的音 乐通过蓝牙以流媒体的方式传输到远端设备上进行解码后通过远端设备的功放 系统播放,同时远端设备还带有远程控制功能,使得用户可以在远端设备上操 作音乐,使其暂停、播放、快进快退或进行上下首切换。笔者设计实现了一款 蓝牙车载音频流播放器,该播放器和收音机及液晶屏之间通过CAN 总线进行 连接,控制操作在收音机上实现,液晶屏显示音乐的tagID3、播放时间、音轨、总音轨等信息,控制命令和播放信息都是通过CAN 总线进行传输。从用户的 使用角度来说,该蓝牙音频流播放器是和收音机、液晶屏组成一套系统的。1 系统结构系统结构如图1 所示。音频流播放器、液晶屏和收音机组成一个车载娱乐系统的CAN 网络,控制命令及状态信息均通过CAN 总线传输,其中收 音机带有功放,直接驱动汽车喇叭,并统一管理包括FM、CD 和音频流播放器的音频输出在内的音源。音频流播放器和蓝牙手机通过蓝牙进行交互,采用 A2DP(Advanced Audio Distribution Profile)完成音乐音频流数据及相关格式信息的传输,通过AVRCP(Audio/Video Remote Control Profile)完成对音乐的远程播放控制及播放信息及状态的读取。在A2DP 中引入了2 个终端名:SRC(Source) 和SNK(Sink)。在这里,数字音频流的数据发送端蓝牙手机称为SRC,数字音 频流的接收端蓝牙音频流播放器称为SNK。 2 硬件设计蓝牙音频流播放器的硬件设计中,包括CAN 通讯、蓝牙子系统和音频系统 3 个部分,其中蓝牙子系统和音频系统部分采用CSR 的蓝牙单芯片

常见的流媒体格式知识讲解

常见的流媒体格式

常见的流媒体格式mov .asf .3gp .viv .swf .rt .rp .ra .rm 各自的优缺点是什么? RM格式是RealNetworks公司开发的一种流媒体视频文件格式,它主要包含RealAudio、RealVideo和RealFlash三部分。Real Media可以根据网络数据传输的不同速率制定不同的压缩比率,从而实现低速率的Internet上进行视频文件的实时传送和播放。因为占用的存储空间小,大多普遍采用,多见于一些音乐网站 RM MOV格式 MOV格式是美国Apple公司开发的一种视频格式,播放软件是苹果的QuickTimePlayer。具有较高的压缩比率和较完美的视频清晰度等特点,最大的特点还是跨平台性,即能支持MacOS,同样也能支持Windows系列。用的也比较少,多用于教学类的 ASF格式最大优点就是体积小,因此适合网络传输 ASF是一个开放标准,它能依靠多种协议在多种网络环境下支持数据的传送。同JPG、MPG文件一样,ASF文件也是一种文件类型,但它是专为在IP网上传送有同步关系的多媒体数据而设计的,所以ASF格式的信息特别适合在IP网上传输。ASF文件的内容既可以是我们熟悉的普通文件,也可以是一个由编码设备实时生成的连续的数据流,所以ASF既可以传送人们事先录制好的节目,也可以传送实时产生的节目。 SWF是基于Macromedia公司Shockwave技术的流媒体动画格式,是用Flash软件制作的一种格式,源文件为.fla格式,由于其体积小、功能强、交互能力好、支持多个层和时间线程等特点,故越来越多地应用到网络动画中。SWF文件是Flash的其中一种发布格式,已广泛用于Internet上,客户端安装Shockwave的插件即可播放。目前,Flash在Internet的主要应用有: rm和ra格式:主要用来在低速率的网络上实时传输活动视频影像,可以根据网络数据传输速率的不同而采用不同的压缩比率,在数据传输过程中边下载边播放视频影像,从而实现影像数据的实时传送和播放。客户端通过Real Player 播放器进行播放。 3GP 画质会比较差,但比较小,缺点就是分辨率相对低. 画面流畅一般。一般适用于手机。 RP 含义一:人品 含义二:角色扮演 含义三:其它专业术语缩写 含义四:其它混乱理解 含义五:RP守恒定律 含义六:正宗英式口音 含义七:特警 含义八:QQ音速里的RetroPoktan 含义九:游戏分级

VLC安装及使用说明5

VLC安装说明: 特别注意 本机如果要通过vlc观看流媒体节目,务必将电脑上的防火墙软件关闭,否则无法正常收看流媒体节目! 1、点击vlc-1.1.0-win32.exe文件 2、安装程序将弹出语言选择对话框,如图所示 选择其中的Chinese(Simplified)简体中文选项,点击“Ok”按钮 3、继续点击“下一步”按钮 4、在许可证协议对话框中点击“下一步”按钮

5、在选择组件对话框中,将“ActiveX plugin”选框勾选上,其他项保留默认值即可,之后 点击“下一步”按钮 6、在选定安装位置对话框中,可以选择程序要安装到的路径,这里保留默认值,点击“安 装”按钮

装完成的提示窗口,点击“完成”按钮结束全部安装。

VLC使用说明: 1、在安装好vlc之后,在您的桌面上将出现vl c快捷方式图标,如图所示: 2、双击此图标,将运行vlc播放器程序,其运行界面如图所示: 3、选择菜单上的“文件”按钮,点击其中的“打开网络串流” 4、在弹出的“打开”对话框中,首先选中页卡中的“网络”,出现如下图所示的界面。输 入组播流媒体节目的地址,例如气象频道节目的组播地址是239.0.0.45,端口是7000,则输入的时候要输入udp://@239.0.0.45:7000(注意前面的@),点击“确定”按钮。

5、等待片刻,播放器将开始播放气象频道视频节目 拖动软件菜单栏上的“喇叭”图标右侧的绿色滚动条,可以调整音量的大小。 6、如果想要将播放的这路节目保存为节目清单,请点击菜单中“媒体”,找到“保存播放 列表为文件”;

7、选择节目清单类型及名称 在弹出的“文件保存”对话框,根据需要,对要保存的列表文件进行命名,图中将列表文件命名为“气象频道”,点击“保存”按钮,保存完毕后,将看到如下图所示的节目清单文件图标,以后只需要直接双击此文件即可启动vlc软件对该组播流进行播放;

课题_基于VLC的播放器开发

VLC的C++封装 因为工作需要,研究了一段时间的播放器开发,如果从头开始做,可以学习下FFmpeg,很多播放器都是基于FFmpeg 开发的,但是这样工作量和难度都比较大,如果想很快能拿出一个播放器来用的,可以研究下开源的播放器,参考下射手播放器作者的文章:媒体播放器三大底层架构。 对比下现有的主流播放器:媒体播放器列表,VLC是在各个方面都表现很突出的一款。VLC 是一款免费、自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,DVD、音频CD、VCD 以及各类流媒体协议。 VLC是在Linux下用C语言开发的,如果想用其接口,可以将C的接口用C++封装一下,这样使用方便的很多,在CodeProject上搜到一个C++的封装,在他的基础上加了点函数,使用了最新的VLC版本(2.1.0),用MFC做成了如下的样子: 主要实现功能: 1、打开:加载音视频文件(同时开始播放)。 2、播放/暂停:播放暂停文件播放。

3、停止:停止播放。 4、快进:快进5秒。 5、快退:后退5秒。 6、音量:音量调节(0--100)。 7、播放进度控制:使用进度条控制。 基本上实现的功能和CodeProject上那个demo差不多,我修改后可以播放网络流媒体,将加载的文件名修改为流媒体地址就可以了。播放上面双语字幕的文件时貌似不能正常显示中文,VLC播放器本身也有这个问题,不过可以设置修改。其他更多的功能还有待研究,VLC的接口注释都很详细,按照它的接口应该可以实现更多的功能,有问题也可以直接在VideoLan的论坛上发帖问。 主要问题:运行时需要依赖的VLC的plugins目录里的DLL(66M大小)太多,有一些DLL是用不到的,如果封装成ActiveX给Web下调用,打包的cab的会比较大,需要裁剪。。。 VLC的C#封装 如果播放器客户端使用的是.Net开发的,如何使用VLC?可以有以下几种方法: 1、ActiveX控件:可以将上述MFC的播放器封装成ActiveX控件提供给C#调用。鉴于业余时间有限,现在这部分工作还没做。 2、使用.Net的PInvoke技术将VLC的C接口封装成C#接口,这方面网上的文章也很多.

vlc做流媒体播放器(里面有好多知识点哦亲)

vlc的应用之一:在命令行下的使用 2008-11-28 13:45:34 标签:command休闲line职场vlc 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.doczj.com/doc/4117928286.html,/539865/115910 如果编译得到没有界面的vlc,双击运行后就没法手动选打文件或网络了。在这介绍几个vlc的命令行命令。 1. vlc帮助 vlc --help or vlc --help --advanced 2. vlc的debug log vlc -vv --extraintf=logger 运行的log将会保存在vlc-log.txt中。 3. vlc打开文件 vlc -vv --extraintf=logger d:/01.avi 4. 作为服务器通过rtp往客户端发送ts流 vlc -vvv --extraintf=logger d:/01.avi :sout=#duplicate{dst=rtp{dst=localhost,m ux=ts,port=1234}} 5. 作为客户端接收rtp流 vlc -vv --extraintf=logger rtp://@:1234

vlc的应用之二:vlc的ActiveX及cab 2008-11-28 15:38:01 标签:vlc休闲cab职场ActiveX 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.doczj.com/doc/4117928286.html,/539865/115943 2009-05-14补充:8. Activex的卸载;9. 让vlc自动安装Activex ;10. 关于vlc的Activex的说明。 vlc自带了ActiveX控件--axvlc.dll,在编译完vlc之后的activex文件夹下。ActiveX是个好东西,axvlc.dll可以随意放到任何位置,成功注册之后可以方便的应用在程序和网页之中。可以参考activex文件夹下的test.html和README.TXT。ActiveX控件的接口有第一版和第二版,第一版简单,功能少,已经不再维护建议用第二版本,功能多一点。(参考的[1]) vlc-0.8.6i和vlc-0.9.4的ActiveX注册方法略有不同。 做ActiveX的网页测试之前需要把Internet选项-->安全-->本地Intranet 的安全级别调到最低。Jeremiah的网页测试环境是IE7,其他浏览器未进行测试。 1. vlc-0.8.6i的ActiveX注册 在E:下新建文件夹vlc-0.8.6iActiveX,拷贝vlc-0.8.6i目录下的plugins,libvlc.dll,activex/axvlc.dll到vlc-0.8.6iActiveX/dlls目录下,拷贝activex/test.html到vlc-0.8.6iActiveX下。新建文本文件install.bat 内容如下: regsvr32 dlls\axvlc.dll 双击install.bat后会提示“dlls\axvlc.dll中的DllRegisterServer成功”。然后用打开test.html,文本框输入MRL就可以播放了。

流媒体重点

一、填空题(20’) 1. 流媒体数据流具有三个特点:连续性、实时性、时序性。 2. 流式传输技术又分两种,一种是顺序流式传输,另一种是实时流式传输。 3.流媒体技术有两个关键特征:数据压缩、流式传输。 4.RealText的可用窗口风格有:通用型、滚动新闻、纸带、字幕、提词机。 5.MPEG-2分为:视频序列层、图像组层、图像层、像条层、宏块层、像块层六个层次。 6.流媒体的传播方式分为单播、多播、广播 7.ASF格式最大的优点是体积小适合网络传输。 8.ASF格式的特点是视频部分采用MPEG-4压缩算法 9.MPEG—1标准包括五部分:第一部分系统层。第二部分图像层。第三部分声音层。第四部分“一致性测试层”。第五部分“软件仿真技术报告” 10.流媒体系统由编码工具、流媒体数据、服务器、网络和_播放器__组成 11.流媒体有三个关键技术:数据压缩、解压缩技术、流媒体的网络传输以及媒体文件在流式传输中的版权保护问题。 二、选择题(10’) 1 .不属于流媒体特点的是:(D) A 启动延时大幅度缩短 B 对系统缓存容量的需求大大降低 C 流式传输的实现有特定的实时传输协议 D 一种新的媒体 2 .流媒体的核心技术是:(B) A 流媒体的网络传输 B 数据压缩/解压缩技术 C 媒体文件在流式传输中的版权保护问题 D 视音频技术 3 .不属于流媒体传输的网络协议的是:(B) A RTP B HTTP C RTSP D RTCP 4 .下列描述中正确的是:(A) A 视频数据由RTP传输,视频质量由RTCP控制,视频控制由RTSP提供。 B 视频数据由RTCP传输,视频质量由RTP控制,视频控制由RTSP提供。 C 视频数据由RTP传输,视频质量由RTSP控制,视频控制由RTCP提供。 D 视频数据由RTSP传输,视频质量由RTCP控制,视频控制由RTP提供。 5. 不属于流式传输方式与传统下载方式相比的优点的是:(A) A 成本低廉 B 启动延时短 C 对系统缓存容量的需求大大降低 D 流式传输的实现有特定的实时传输协议 6.制定(D )标准的目的是将不同的协议、标准、技术等有机地融合在一起。 (A)MPEG-1 (B)MPEG-2 (C)MPEG-4 (D)MPEG-21 7.(B )针对运动影像中的音频和视频的特点,引入了AO和VO对象,统称AV对象。(A)MPEG-2 (B)MPEG-4 (C)MPEG-7 (D)MPEG-21 8. RealServer主要使用两个协议与客户端联系:RTSP和 B 。 A.RTP B. PNA C.TCP D.UDP 9.下列哪个被称为“多媒体内容描述接口”(C) A、MPEG-2 B、MPEG-4 C、MPEG-7 D、MPEG-21 10.创建一个RealText文档,并在网络上发布的一般步骤为( B ) A:(1)(2)(3)(5)(4)B(1)(4)(2)(5)(3): C:(3)(2)(5)(1)(4)D:(1)(3)(2)(4)(5) (1)选择一种窗口风格;

浅析流媒体技术的发展现状

浅析流媒体技术的发展现状 随着互联网大发展的时代到来,我国的互联网技术飞速发展和普及,以网络作为传播平台的第四代媒体中独特的一种媒体“流媒体”凭借其体积小、信息量大等特点已经日益流行。本文就流媒体技术的应用和研究现状进行了阐述、对流媒体的发展前景进行了展望。 标签:流媒体流技术网络传输 0引言 我国互联网技术的发展和个人计算机的普及,网络从最初的传播文字、图片等资料到现在的各种形式的网络视频和三维动画,人们获取信息的形式呈现多样化。然而,我们不得不正视一个问题,上网人数的增加和网络设备的局限性直接让文件的大小成为网络传输过程中一个必须重视的问题,一方面:在网络上看到生动、清晰的多媒体信息演示;另一方面:网络速度制约着文件的下载时间。在这种情况下,流媒体技术应运而生。流媒体是指在互联网上以数据流的方式实时发布音频,视频.动画或者其他多媒体文件的媒体,实质是应用流技术在网络上传输的多媒体文件,数据从发送源端同时向目的接收端传输,它可以作为连续实时流在目的地被接收。其原理是将连续的多媒体文件或信息进行压缩处理后放到网络服务器上,让浏览者一边下载一边观看收听,而不需要整个多媒体文件下载完成就可以即时观看的技术,它不是一门单一的技术,融合了多种网络技术和其他计算机技术,包括流媒体数据的采集、压缩、编码、存储、网络传输和网络通信等多种技术。 1流媒体技术的应用现状 现在,流媒体已经逐渐发展成为一个朝阳产业。有专家预言,流媒体将成为未来因特网上应用的主流,实现沟通和传播的多向性,使传播不再受到时间和空间的限制。流媒体技术广泛用于新闻出版、证券、娱乐、电子商务、远程培训、视频会议、远程教育、远程医疗等互联网信息服务的方方面面,总结起来有三大应用。 1.1网络视频直播目前,流媒体技术作为第四代媒体技术中的一种,很多大型的新闻娱乐媒体,如中央电视台和一些地方电视台等,都在互联网上提供基于流媒体技术的节目,目前流媒体的视频直播应用突破了网络带宽的限制,实现了在低带宽的环境下的高质量影音传输,其中的智能流技术保证不同连接速率下的用户,使得用户可以随时随地应用流媒体技术在网络上观看多媒体信息。 1.2远程教育Internet的使用开创了远程教育的里程碑,它促进了远程教育中的教学传递日趋现代化,这种教育形式能跨越校界、区界甚至国界。流媒体技术应用突破传统的远程教育以文本为主、没有声音和视频,解决了教学模式单一、交互性差的问题。教学模式多样化体现在教师的在线直播授课和授课视频观看,

流媒体课程考点

题型:填空题、选择题、判断题、问答题、计算题、程序题(读程序,读代码) 基础知识考点 1.什么是流媒体? 将视音频文件经过压缩处理后,放在网络服务器上进行分段(分为多个数据包)的传输,客户端计算机不用将整个的视音频文件下载到本地,便可以即时收听和收看。 这个过程的一系列相关的包称为“流”。流媒体实际是一种新的媒体传送方式,而非一种新的媒体。 总的来说,流媒体就是指在网络上使用流式传输技术的连续回放的多媒体。 2.流式传输方式 实现流式传输有两种方法:实时流式传输和顺序流式传输。 一般说来,如视频为实时广播,或使用流式传输媒体服务器,或应用如RTSP的实时协议,即为实时流式传输。 实时流式传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。 实时流与HTTP流式传输不同,他需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。 理论上,实时流一经播放就不可停止,但实际上,可能发生周期暂停。 实时流式传输必须匹配连接带宽,这意味着在以调制解调器速度连接时图象质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。如欲保证视频质量,顺序流式传输也许更好。实时流式传输需要特定服务器, 如:QuickTime Streaming Server、RealServer与Windows Media Server。这些服务器允许你对媒体发送进行更多级别的控制,因而系统设置、管理比标准HTTP服务器更复杂。 实时流式传输还需要特殊网络协议,如:RTSP (Realtime Streaming Protocol)或MMS (Microsoft Media Server)。这些协议在有防火墙时有时会出现问题,导致用户不能看到一些地点的实时内容。 顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分. 顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP 流式传输。 顺序流式传输比较适合高质量的短片段,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。 这意味着用户在观看前,必须经历延迟,对较慢的连接尤其如此。对通过调制解调器发布短片段,顺序流式传输显得很实用,它允许用比调制解调器更高的数据速率创建视频片段。 尽管有延迟,毕竟可让你发布较高质量的视频片段。 顺序流式文件是放在标准HTTP 或FTP服务器上,易于管理,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术 3.四大流媒体公司及其流格式 Windows Media (Microsoft微软公司)ASF、WMV、WMA RealSystem( Real Networks公司)RM、RA、RP、RT QuickTime(Apple公司)MOV、QT Adobe Flash(Adobe公司)SWF、FLV 4.流媒体技术的三个方面 1、编码器(编码技术);

VLC测试组播使用说明

VLC组播软件使用说明 一.安装 1. VLC播放器是一款开源播放器,可以播放MPEG-1,MPEG-2,DivX,DVD/VCD, TS,数字卫星频道,在许多作业平台底下透过宽频IPv4,IPv6网络播放线上影片,用于播放网络串流及本机多媒体档案播放 2. VLC安装 ●首先点击安装包安装(网上可提供免费下载,以2.0.1版本为例) 双击安装 ●点击“下一步”

●点击“下一步” ●这里选择安装路径,点击“安装” 在安装过程中会弹出dos窗口,等待安装完毕后如下图所示

●点击完成后,桌面会显示快捷方式,这样VLC就安装完毕了 二.建立组播流量测试 1.服务器端配置 ●首先打开VLC视频软件,点击“媒体”——“流” ●选择“添加”——需要播放的视频

●点击“串流” ●点击“下一个”

●这里不勾选“激活转码”,可勾选“在本地显示”,在这里作为服务器支持三种 组播方式播放 ?HTTP ?RTP / MPEG Transport Stream ?UDP (legacy) 选择相应组播模式后,点击“添加”(这里以RTP / MPEG Transport Stream 为例) 输入组播地址及端口号,例如这里输入的“234.0.0.6”端口号为“5004” 填写完毕后直接点击“串流”,服务器配置完毕

2. 客户端配置 ●点击“媒体”——“打开网络串流” ●这里以RTP / MPEG Transport Stream为例,根据服务器填写的组播地址及 端口号,填写的网络URL为rtp://234.0.0.6:5004 点击“播放”即可

流媒体常识工具格式转换播放软件使用介绍

流媒体常识工具格式转换播放软件使用介绍流媒体常识工具格式转换播放软件使用介绍目录: 1. 流媒体常识工具格式转换播放软件使用介绍 2.常见视频格式之间如何转换 3.将MTV转成mp3 4. 将MP3转刻成CDA光盘 5.将MIDI转为WAVE 6.制作RM音乐 7.如何分割asf文件 8.视频编码/解码器问答 9.修复下载后的电影 10.分割合并MP3歌曲 11.从视频文件中提取声音 12.光盘刻录 13.巧用摄像头制作VCD 14.视频同步字幕制作 15.视频编辑常见问题 16.流媒体编辑魔术师AsF Tools 17.最简单的VCD制作 流媒体常识工具格式转换播放软件使用介绍 Q.为什么有的电影没有图像,只有声音?

在观看电影的时候,可能会遇到只有声音,没有图像的现象,这时你需要看看自己是否安装了DIVX插件(看 MPEG4的工具),没有安装一定会出现上述现象,而如果你安装了或者观看的不是MPEG4的电影,那从锌赡?是网速的问题,可能是你的网速慢或者是在线观看的人太多了,服务器过载的缘故,都会引起上述现象本站上网工具包提供DIVX插件的下载 Q.rm文件如何解决国语和粤语的双声道问题? 一些文件如rm asf有的时候国语和奥语是混合在一些的,而realplaywindows mediaplay一般都是不能分开声道的其实你可以采用如下简单的方法解决:双击任务栏上的喇叭图标,然后将Wave Output向右播到头即可解决但这并不是100%全能解决的,一些电影文件是无法解决这个问题的,只能认命了目前realfox软件也可以解决双声道问题,但它采用的方法也是和前面所说的一样,因此也不是100%能解决问题了 Q.ram文件是什么,如果才能找到真实的下载地址? ram一般都很小(几十个字节),它是一个导航文件下载后用记事本打开,然后你就会看到真实的下载地址了 Q:encoder不能设置用户权限访问 A:因为real没有在encoder设置用户访问权限!! Q:跑RealServer的服务器组播时的CPU,内存需求情况? A:RealServer中的组播是将一个现场直播流同时传递给多个客户端,而 无需为每一客户的连结发送一个单独的数据流,客户端只需连结到这个 数据流,而不是连结到RealServer服务器,从而降低带宽的使用为了 利用组播技术所带来的优越,在RealServer与Realplayer客户端之间的 所有设备必须是支持组播技术的,包括之间的路由器交换机和其他 的网络设备! 使用组播能够减少带宽的使用,用一般满足100个600k 连接的机器配置就行了! A:音轨的问题可以这样解决,下载smart ripper ,这个工具可以把DVD的光盘的vob文件和它的音轨合成一个新的 VOB文件,这样子视频和音轨就能在同一个文件里,随便你用FlaskMPEG 或者其他工具转化了 A:flash在smil语言中插入的时候用realplay播放是没有声音用realplay plus播放没有问题为什么?给real公司发过信也没有明确的回答!!! Q:*.dat转化为*.rm格式的软件?

数字媒体技术基础知识要点总结

数字媒体技术基础知识要点总结 ※媒体其含义是中介、中间的意思。同时,媒体又是信息交流和传播的载体。是一种工具,包括信息和信息载体两个基本要素。 ※两层含义:①传递信息的载体,称为媒介,也称为逻辑载体,如数字、 文字、符号、图形、图像、声音、视频、动画、编码等。②存储信息的实体, 称为媒质,如纸、磁盘、光盘、磁带、半导体存储器等。也称为物理媒体。 ※ITU技术角度定义媒介:感觉(语言音乐文字图形图像等),表示(编码),显示(输入输出设备),储存(光盘磁盘等),信息交换(电缆光纤),传输(储存和传输媒体或结合)。 ※特性:多样性、集成性、交互性、数字化。 ※数字媒体概念:以数字化的形式存储、处理和传播信息的媒体,以网络 为主要传播载体,并具有多样性、互动性、集成性等特点,包括信息和媒介。 ※我国概念:数字化的内容作品以现代网络为主要传播载体,通过完善的 服务体系,分发到终端和用户进行消费的全过程。 ※特性:数字化(数字形式储存处理与传播,可复制重复利用),交互性(以网络信息终端为介质),趣味性(数字娱乐),集成性(多种媒体结合,电脑技术 整合),技术与艺术的融合(信息技术人文艺术)。 ※传播模式:大众传播模式;媒体信息传播模式;数字媒体传输模式;超 媒体传播模式 ※产业价值链:内容创建,内容管理(存储管理,查询管理,目录、索引),内容发行,应用开发,运营接入,价值连接成,媒体应用 ※发展方向:①内容制作技术以及平台②音视频内容搜索技术③数字版权 保护技术④数字媒体人机交互与终端技术⑤数字媒体资源管理平台与服务⑥数 字媒体产品交易平台。

※为什么要数字化:通用的存储和传输格式,数字化后处理更方便;适用于光盘存储远距离传输;准确可靠,无累计失真,属于无损传输和存储。 ※过程:采样;量化;编码。 ※采样:对于连续的信号,在时间轴上每隔一定的时间,采集相应的数据的过程。采样定理:采样频率=原始信号频率的2倍时,可恢复为原始信号。图像采样:用多少个像素点的"列数×行数"表示,是对图像空间进行离散化,称为图像的分辨率。采样频率是指一秒钟时间内采样的次数。 ※汉字编码:输入码,区位码,机内码,字形码。英文编码:ASCII码 ※图像分类:二值图像,灰度图像,真彩色图像,颜色索引图像。 ※音频特征:频率(音调)、振幅(响度)、波形(音色) ※音频编码方式:波形编码(脉冲编码调制(PCM)差分脉冲编码调制(DPCM)自适应差分编码调制(ADPCM));参数编码;混合编码 ※音频质量:采样频率,量化深度(量化分辨率),音频流码率。 ※音频编辑:声道,音轨,时序。 ※电视制式:PAL(中国西欧625,25帧50场)NTSC(美国日本525,29.97帧60场)SECAM(法国东欧同PAL) ※视频信号类型:复合视频信号,分量视频信号,S-Video信号。 ※QCIF(176*144)CIF(352*288)SD(720480,640480,704480,720576) ※属性:视频分辨率,图像深度,帧率,压缩质量 ※镜头:镜头就是从不同的角度、以不同的焦距、用不同的时间一次拍摄下来,并经过不同处理的一段胶片,它是一部影片的最小单位。 ※镜头组接:即把一段片子的每一个镜头按一定的顺序和手法连接起来,成为一个具有条理性和逻辑性的整体。

流媒体MP3播放器教程

基于libmad 的简单MP3流媒体播放器的实现.介绍 本文在Fedora 5 Linux 下实现了一个基于libmad 的mp3 流媒体播放器。此流媒体播放器可以播放基于HTTP 1.1 协议传输的MP3 流媒体数据。 基本原理是:从HTTP 服务器获得MP3 媒体信息,然后通过网络传输把MP3 数据以数据流的形式接收到MP3 流媒体播放器客户端,由客户端通过libmad 解码MP3 数据流,得到PCM 音频数据,写入音频设备,播放音乐。本文的流媒体播放器只是实现了必要的简单功能,没有考虑太多情况。比如,没有考虑实时播放控制,这样的话就不能随意选取播放点进行播放。 本文的MP3 流媒体播放器创建两个线程,使用两个缓冲区保存MP3 数据,可以一边下载数据,一边播放音乐。编译运行此MP3 流媒体播放器需要安装libmad (https://www.doczj.com/doc/4117928286.html,/prodUCts/mad/) 以及ALSA(Advanced Linux Sound Architecture) (https://www.doczj.com/doc/4117928286.html,)相关的软件。ALSA包括4部分,分别是sound driver, sound library , sound utilities 以及tools。至少应该安装sound driver, sound library 。编译程序时连接库的选项是:-lmad -lasound -lpthread。 本文的MP3 流媒体播放器使用双缓冲区,一个是数据接收缓冲区,另一个是数据解码缓冲区。主程序结构如下图所示,图中的蓝色线表示数据流向。

图1:MP3 流媒体播放器主程序结构图 2.libmad简介 MAD (libmad)是一个开源的高精度MPEG 音频解码库,支持MPEG-1(Layer I, Layer II 和LayerIII(也就是MP3)。LIBMAD 提供24-bit 的PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用libmad 提供的一系列API,就可以非常简单地实现MP3 数据解码工作。在libmad 的源代码文件目录下的mad.h 文件中,可以看到绝大部分该库的数据结构和API 等。 本文用到的libmad 中的主要数据结构有:struct mad_stream, struct mad_synth, struct mad_frame。它们的定义如下: 清单1:libmad 中的主要数据结构 struct mad_stream { unsigned char const *buffer; /* input bitstream buffer */ unsigned char const *bufend; /* end of buffer */

音视频直播技术的总结

音视频直播技术的总结 1. 流媒体协议 流媒体协议是服务器与客户端之间通信遵循的规定。当前网络上主要的流媒体协议如图所示。 2. 直播平台参数对比 主流互联网视音频平台直播服务的参数对比如图所示: 3. 直播技术架构图: 可以看到直播的流程可以分为如下几步: 采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放 1.音视频采集 采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节。视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全不同的输入源和数据格式。

音频采集:麦克风采集,系统采集等 音频数据既能与图像结合组合成视频数据,也能以纯音频的方式采集播放,后者在很多成熟的应用场景如在线电台和语音电台等起着非常重要的作用。音频的采集过程主要通过设备将环境中的模拟信号采集成 PCM 编码的原始数据,然后编码压缩成 AAC等格式的数据分发 出去。常见的音频压缩格式有:MP3,AAC,HE-AAC,Opus,FLAC,V orbis (Ogg),Speex 和 AMR等。 音频采集和编码主要面临的挑战在于:延时敏感、卡顿敏感、噪声消除(Denoise)、回声 消除(AEC)、静音检测(V AD)和各种混音算法等。 视频采集:摄像头采集,屏幕录制,视频文件等 将图像采集的图片结果组合成一组连续播放的动画,即构成视频中可肉眼观看的内容。图像的采集过程主要由摄像头等设备拍摄成 YUV 编码的原始数据,然后经过编码压缩成 H.264 等格式的数据分发出去。常见的视频封装格式有: MP4、3GP、A VI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等。图像由于其直观感受最强并且体积也比较大,构成了一个视频内容的主要部分。图像采集和编码面临的主要挑战在于:设备兼容性差、延时敏感、卡顿敏感以及各种对图像的处理操作如美颜和水印等。 2.音视频处理 音频可以变声变调,视频可以美颜加水印,滤镜等 视频或者音频完成采集之后得到原始数据,为了增强一些现场效果或者加上一些额外的效果,我们一般会在将其编码压缩前进行处理,比如打上时间戳或者公司 Logo 的水印,祛斑美颜和声音混淆等处理。在主播和观众连麦场景中,主播需要和某个或者多个观众进行对话,并将对话结果实时分享给其他所有观众,连麦的处理也有部分工作在推流端完成。 3.编码和封装 编码:把原始音频PCM,视频yuv编码为 AAC和h264等 视频编码的意义 原始视频数据存储空间大,一个 1080P 的 7 s 视频需要 817 MB 原始视频数据传输占用带宽大,10 Mbps 的带宽传输上述7 s 视频需要 11 分钟 而经过 H.264 编码压缩之后,视频大小只有 708 k ,10 Mbps 的带宽仅仅需要 500 ms ,可以满足实时传输的需求,所以从视频采集传感器采集来的原始视频势必要经过视频编码。 编码基本原理 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?核心思想就是去除冗余信息: 1)空间冗余:图像相邻像素之间有较强的相关性 2)时间冗余:视频序列的相邻图像之间内容相似 3)编码冗余:不同像素值出现的概率不同 4)视觉冗余:人的视觉系统对某些细节不敏感 5)知识冗余:规律性的结构可由先验知识和背景知识得到 封装:把AAC和h264封装成MP4或fiv等格式 目前,我们在流媒体传输,尤其是直播中主要采用的就是 FLV 和 MPEG2-TS 格式,分别用

浅谈流媒体发展现状

浅谈流媒体发展现状与趋势 【摘要】流媒体是一项很重要而先进的通信技术,其重要原因与目前社会的信息饱和有关,信息如此之多,人们必须努力找出对自己有用的信息。无论何时何地,人们都需要导航到最简捷、最易吸收的信息,人们需要不用浪费太多时间就能获得重要的信息,流媒体技术正好符合要求,因为它内容丰富、可搜索、听众范围广,而且视频比其他形式的信息更容易吸收。【关键字】发展现状发展趋势流媒体技术 一.发展现状 当流媒体在实时应用中(如现场流媒体广播),根据当前的网络状况和用户的终端参数,多媒体数据是一边被编码一边被流媒体服务器传输给用户。而在其他的非实时应用中,多媒体数据可以被事先编码生成多媒体文件,存储在磁盘阵列中。当提供多媒体服务时,流媒体服务器直接读取这些文件传输给用户,这样服务方式对设备的要求较低。目前许多流媒体服务属于后一种方式,这样就要求流媒体服务器具有一定的机制来适应网络状况和用户设备。 流媒体技术广泛用于新闻出版、证券、娱乐、电子商务、远程培训、视频会议、远程教育、远程医疗等互联网信息服务的方方面面,总结起来有三大应用。 网络视频直播目前,流媒体技术作为第四代媒体技术中的一种,很多大型的新闻娱乐媒体,如中央电视台和一些地方电视台等,都在互联网上提供基于流媒体技术的节目,目前流媒体的视频直播应用突破了网络带宽的限制,实现了在低带宽的环境下的高质量影音传输,其中的智能流技术保证不同连接速率下的用户,使得用户可以随时随地应用流媒体技术在网络上观看多媒体信息。 远程教育Internet的使用开创了远程教育的里程碑,它促进了远程教育中的教学传递日趋现代化,这种教育形式能跨越校界、区界甚至国界。流媒体技术应用突破传统的远程教育以文本为主、没有声音和视频,解决了教学模式单一、交互性差的问题。教学模式多样化体现在教师的在线直播授课和授课视频观看,学员可以由针对性的选择想要学习的章节和内容,极大的提高了学习的效率节省时间。此外,流媒体技术也使远程教育的交互从单向通信的方式,如通过Email、在线聊天、BBS等。采用流媒体技术,把流式视频、音频加入答疑系统将提高它的完整性和交互能力。流媒体的VOD技术还可以进行交互式教学,达到因材施教的目的。像Flash、Shockwave等技术就经常应用到网络教学中。学生可以通过网络共享学习经验。大型企业可以利用基于流媒体技术的远程教育对员工进行培训。 视频点播及电视电话会议视频会议系统指互联网上或者其它数据网络上开展的一种交互式多媒体通信业务。视频会议系统与流媒体技术应用相结合,利用流媒体技术的良好的可访问性、可扩展性和对带宽的有效利用性,实现视频会议内容的广播和录播,并且由于流媒体终端播放软件大多是免费的,因此利用流媒体机制:点对点(unicast)、多址广播(Multicast)和广播(Broadcast)可以很好地满足视频会议的如上需求:首先可以使大量的授权流媒体用户参加到视频会议中,扩大了会议的规模和覆盖面;而且利用流媒体技术的记录功能,视频会议在召开完以后可以实时存储,流媒体用户就可以通过点播的方式来访问会议的内容。 二.发展趋势 流媒体的出现实现了从简单的文字和图片传输到音频和视频传播的过渡,这不仅是传播科技的一次革新,也是传播力量的再一次突破:a.流媒体传播继承了传统广电传播多维、生动、具象的特点,使得以文字图片为主体的网络新闻一改往日单维、静止、抽象的形象,推动了诸多媒体相互叠加并且高度融合的多维传播时代的到来,大大增加了传统新闻的深度和

微课学习心得体会

微课学习心得体会 篇一:微课培训心得体会 微课培训心得体会 保康县寺坪镇中心学校万祖俊 8月上旬,我有幸去襄阳电教馆参加了微课培训,首先,我想感谢学校给了我这个学习和进步的机会。其次,我就参加培训后的一些感想与大家分享。 首先给我们分析了微课的现状、问题与趋势。他说到:这是一个“人人为师,人人为学”的时代。这让我明白:今天,我们任何人,只要愿意,我们可以向其他任何人学习我们想要学习的几乎任何东西。接着由胡铁生教授向我们介绍了微课的设计制作与发展趋势,当天下午我们还去了天容中学听了一节微课讲授课,课后,我市教师和做课老师针对“该如何上好微课”进行了深入探讨,最后我们具体学习了如何制作微课。 通过这次培训,让我有很大的收获: 一、我知道了,其实微课是指利用10分钟左右时间讲解一个非常碎片化的知识点、考点或作业题、考试真题、模拟题的一种微视频。这种视频有着短小精悍的特点,即视频长度短,主题小,设计、制作、讲解精良,学习效果震撼令人难忘。 二、微课虽然是一个短小的视频,但它也具有环节上的完整性。微课

虽展现的是某个教学重难点的知识,但就这个知识点而言,它也有导入、过程和小结。因此,我们在制作微课的时候一定要清楚这一点。 三、在学习制作微课时,我也有一些小收获。如:我们不仅可以利用录屏软件来录制微课,也可以使用手机或者摄像机。其实手机和摄像机是最容易操作的,如:平时听数学老师说,数学中的除法那一部分知识特别难,而课堂上的时间又有限,老师兼顾不到每一位学生,也许某个孩子理解能 力弱,没跟上老师的思路,这一部分就落下了,这个时候,老师就可以采用手机或者摄像机,准备好纸笔,这个时候老师就只需在纸上进行解题,解一道题最多也就用3、4分钟,既简单又清楚,孩子可以一遍一遍去看解题步骤。 四、之前总觉得微课在我们这个技术相对落后、孩子自学能力较弱的环境下根本就是天方夜谭,但在天荣中学听完方莹老师的课后我有了一点点转变,当时我们心里都有着一个共同的疑惑——孩子课堂上在老师的眼皮底下都不认真学习,在家有可能一遍一遍,翻过来翻过去的看视频学习吗?在与王莹老师的交流中,一位老师问出了大家的心声。而方莹老师平时也是把视频做好后,让孩子利用微机课或者是自习课去观看,这样大部分人都在学习,避免孩子偷懒的情况。所以,对于我们小学而言,小学生的自制力和学习主动性本来就弱,这种“家校翻”根本就不适合,所以,我们只能利用微机课和自习课让孩子去观看微课。 其实微课的制作相对来说较容易,但是如何设计导学案,在教学内容

VLC串流DVB-T教程

VLC串流DVB-T教程 By neo 2011-05-23 VLC全名是VideoLanClient,是一个开源的、跨平台的视频播放器。目前的最新发布版本是1.1.9。VLC支持大量的音视频传输、封装和编码格式,完整的功能特性列表可以在这里获得https://www.doczj.com/doc/4117928286.html,/vlc/,下面给出一个简要的不完整的列表: 操作系统: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、Commandline 浏览器插件:ActiveX、Mozilla(firefox) 免费、开源、无广告、多格式支持,这看上去貌似很美好,但知名度为什么没有收费的DVBviewer高呢?大蛇明分别试用过两个产品,得出的结论如下: 1.DVBviewer是专门针对数字广播开发的,其功能比较有针对性。而VLC的开发目标是局域网视频广播,DVB只是的其中一部分,就拿”节目指南”和”信号强度”来说,一般dvb软件都会有这两个功能的,VLC...抱歉,这个真没有。 2.VLC界面不友善,因为它本身支持的视频输入格式甚多,什么文件啊、光盘啊、视频采集卡。。。 这造成界面比较混乱,而且你知道做开源软件的程序员,一般只追求技术,只要功能上没有问题,界面差一点,他们是可以原谅的,有些功能甚至只有他们软件开发人员才会找到。到现在为止,我都不知道怎样保存dvb-t的频道列表。值得庆幸的事,界面不友善的程序,往往脚本功能很丰富,这非常符合开源软件的编写习惯。^_^ 3.国内用户比较少,形成的中文文档不多,再加上抽象的界面,额。。。一般人都会望而却步。 不过我相信任何困难都难不到我们勇敢的中国人的,干革命总得有人牺牲,我翻阅了无数国外的论坛,经过N多次试验,终于明白了VLC串流DVB-T的真谛。有幸在这里与大家分享一下。

相关主题
文本预览
相关文档 最新文档