
原有的API已被弃用,新的API如下:
Query
Setup
Usage
Cleanup
ps: FFmpeg给出的例子中并未while循环调用av_bsf_receive_packet,也未对其flush。
https://blogs.gentoo.org/lu_zero/2016/03/21/bitstream-filtering/
Rtmp 分析参见: https://blog.csdn.net/fdsafwagdagadg6576/article/details/109462544
本文主要内容来自:FLV格式详解 https://blog.csdn.net/weixin_42462202/article/details/88661883
该文一层一层介绍了FLV格式. 本文对其内容增加了思维导图并补充了实例.
FLV是一种文件格式.类似的还有Mp4.
将H264,Aac裸流封装成文件格式.
为什么要对裸流做文件格式封装?即FLV文件和原始文件区别?
1 文件播放. 原始文件播放读一帧解析一帧. 没有整体时长,不能拖拽,倍速播放等音视频控制了.
FLV文件因为有FLV tag保存音视频信息。所以可以显示视频时长,播放进度,拖拽,倍速播放等.
2 是协议支持,rtmp协议要求,数据必须Flv格式. rtc协议数据才是裸流。
Flv由 “Flv header” 和 “Flv Body”组成。
Flv Body由一系列的Tag组成,每个Tag又有一个preTagSize字段,标记着前面一个Tag的大小
Header长度一般都是固定的9个字节:
Flv Body由一个一个Tag组成,每个Tag都有一个preTagSize字段,标记着前面一个Tag的大小。
Tag有三种类型, Audio Tag(音频Tag),Video Tag(视频Tag),script Tag(又称Metadata Tag) .
每个Tag由“Tag Header”和“Tag Data”组成.Tag=Tag Header+Tag Data.
对于不同类型的Tag,“Tag Header”的格式都是相同的,“Tag Body”的格式就不一样了.
图片说明:3种tag的tag header格式一样,只有Tag type 域的值不同,分别是08(音频),09(视频),12(script data).
Notes:注意Flv header和Flv tag header是不同的.
下面这张图归纳一下上面讲的内容,看完后对flv应该有个总体的了解了
一般一个flv文件由一个头部信息,一个script Tag,以及若干个video Tag和audio Tag组成。
图片说明:tag之间是previous tag size
2.2.2 每种类型的Tag Data详解
Flv有三种tag:“Audio Tag Data”、“Video Tag Data”、“Script Tag Data”
1)、Audio Tag Data
如果SoundFormat=10,那么 音频数据 就是AAC AUDIO DATA。
notes:音频参数只有一个字节
2)、Video Tag Data
a) 视频参数:
对于H.264数据来说,CodecID = 7。
当CodecID = 7时,视频数据就是 AVCVIDEOPACKET 格式。
b) 视频数据:
下面讲解一下 AVCVIDEOPACKET 。
以下是 AVCDecoderConfigurationRecord 的结构
notes: SPS/PPS 说明
notes: I,P,B帧.h264 没有start code 0x00 00 00 01
c) 实例分析:
i)Tag Header:
Type:09(Tag的类型,包括音频(0x08)、视频(0x09)、script data(0x12))
Datasize:00 00 2e(Tag Data 部分的大小)
Timestamp:00 00 00(时间戳)
Timestamp_ex:00(时间戳的扩展部分)
StreamID:00 00 00(总是0)
ii) Tag data:
因为CodecID=7,所以视频数据就是AVCVIDEOPACKET格式
因为ACVPaketType==0,所以Data=AVCDecoderConfigurationRecord
该类型Tag又通常被称为MetadataTag,会放一些关于FLV视频和音频的元数据信息如:duration、width、height等。通常该类型Tag会跟在FileHeader后面作为第一个Tag出现,而且只有一个。
notes:用amf语法实现metadata数据key-value存储.amf 数据的都是"类型+[长度]+值"的形式.
结构如下图所示
AMF包:第一个字节表示AMF包的类型
第一个AMF包:
第一个字节一般为0x02,表示字符串,第2-3个字节表示字符串的长度,一般为0x000A,后面跟的就是字符串,一般为"onMetaData"。
第二AMF包:
第一个字节为0x08,表示数组,第2-5个字节表示数组元素个数,后面跟着就是数组的元素,格式为:元素名长度(UI16) + 元素名(UI8[n]) + 元素的值(double),最后以“009”结尾。
常见的数组元素
补充: Nginx-rtmp之 AMF0 的处理 https://www.cnblogs.com/jimodetiantang/p/8975945.html
这篇blog:有具体的抓包实例分析. 对script tag data论述更详细.
notes: amf0和amf3有什么区别?:通常都是amf0, amf3是它的特殊补充.
参见 https://blog.csdn.net/HandSome696/article/details/72518927
图片说明:此图没有对script tag,video tag,audio tag做区分和具体介绍.
其他参考: 多媒体文件格式之FLV: https://www.cnblogs.com/jimodetiantang/p/8992425.html
(有audio,video各个域的详细说明)
在PPT中插入视频的方法有很多,1.直接播放视频、2.插入控件播放视频、3.插入对象播放视频。以下是我为您带来的关于将Flv格式的视频加入到PPT演示文稿中,希望对您有所帮助。将Flv格式的视频加入到PPT演示文稿中
插入对象播放视频
这种方法是将视频文件作为对象插入到幻灯片中的,与以上两种方法不同的是,它可以随心所欲地选择实际需要播放的视频片段,然后再播放。实现步骤为:
1. 打开需要插入视频文件的幻灯片,单击“插入/对象”命令,打开“插入对象”对话框。
2. 选中“新建”选项后,再在对应的“对象类型”设置栏处选中“视频剪辑”选项,单击[确定]按钮。
3. PowerPoint自动切换到视频属性设置状态,执行“插入剪辑/Windows视频”命令,将事先准备好的视频文件插入到幻灯片中。
4. 执行“编辑/选项”命令,打开选项设置框,在其中设置视频是否需要循环播放,或者是播放结束后是否要倒退等,单击[确定]返回到视频属性设置界面。
5. 点选工具栏中的视频[入点]按钮和[出点]按钮,重新设置视频文件的播放起始点和结束点,从而达到随心所欲地选择需要播放视频片段的目的。
6. 用鼠标左键单击设置界面的空白区域,就可以退出视频设置的界面,从而返回到幻灯片的编辑状态。还可以使用预览命令,检查视频的编辑效果。
在做PowerPoint演讲稿时,为了更加生动你是否有想过加入一些视频?如今网络上四处可见Flv格式的流媒体在线视频,其中有太多好玩的小短片和丰富的演示素材,遇到需要的,能不能把它加入到Powerpoint演示文稿里去呢?
答案是“肯定”的。只要你的电脑可以播放Flash,就可以在Powerpoint里播放Flv在线视频。因为Flv格式的视频是通过调用Adobe的Flash插件来播放的,通过一个“ActiveX控件”就可以轻松地将你喜欢的视频加到你的PowerPoint幻灯片文件里了。
插入控件播放视频
第一步:在PowerPoint文件里插入一个可以播放Flash的“ActiveX控件”
1.首先要确保你的电脑已经安装了Adobe(Macromedia) Flash Player。
如果没有,请点击下载:http://www.jb51.net/softs/74423.html
2.打开需要插入视频的Powerpoint幻灯片页,在菜单中选择“视图/工具栏/控件工具箱”,打开控件工具箱悬浮窗口。
3.点击工具右下角的“其他控件”按钮,会打开一个长长的控件清单,一直往下拖,选择“Shockwave Flash Object”,此时鼠标会变成十字形,如图一。
图一
4.回到页面,单机并拖动鼠标,会出现一个带叉的方格,调整它的大小,这个方格决定视频在在幻灯片中播放时的大小,如图二。
图二
第二步:获取网络视频的链接地址
下面列举一些比较流行广泛的视频网站的视频地址获取方法:
1.YouTube(全世界最大的视频分享网站)
①.找到你需要的YouTube视频,在播放框中点击右下角的“menu”按钮,然后再点击“url”,会出现写有URL的文本框。复制文本框中的所有文字,会得到如“http://www.youtube.com/watch?v=lFv5qxZ6jhc”这样的一个链接。
②.需要对链接地址做一些修改,将其中的“/watch?v=”一段换成“/v/”。得到类似这样的有效地址:http://www.youtube.com/v/=lFv5qxZ6jhc。
图三
2.土豆网
在土豆网找到需要的视频,在视频播放页面中,点击视频下方的“如何转贴土豆视频”,在d出的提示框中复制“2.把播放器显示到个人空间或Blog”一栏的地址即可。
图四
3.优酷网和我乐网
优酷网在播放页面视频右方,我乐网在播放页面视频的下方,可以看到写有视频地址的文本框,复制即可。
其他视频网站获取方法类似,关键就是找出带播放器的视频的原链接地址,在此我就不一一列举了。
猜你喜欢:
1. 如何在ppt中添加视频播放按钮
2. 如何在ppt中加入视频链接
3. 怎么在ppt中加入视频链接
4. 如何将视频文件插入到ppt中
5. wps演示如何保存为视频格式
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)