mp4格式(转帖加修改) 转载
下面的软件下载地址:http://download.csdn.net/source/2607382
ftyp: |
这是一个筐,可以装mdat等其他Box。 例:00 00 00 14 66 74 79 70 69 73 6F 6D 00 00 02 00 6D 70 34 31 |
moov: |
这是一个筐,里面很丰富 |
moov:mvhd: |
这是moov的header. 语义: |
moov:trak: tkhd: |
这是track header 例2语义: |
moov:trak: mdia: |
这个Box没有属性,是一个筐,装在trak里 |
moov:trak: mdia: mdhd |
例1:视频 hdlr: handler 例2:声频 |
moov:trak: mdia: minf: vmhd |
Video |
moov:trak: mdia: minf: dinf: dref |
Data |
moov:trak: mdia: minf: stbl: stsd |
stsd: Sample VisualSampleEntry: AudioSampleEntry: |
moov:trak: mdia: minf: stbl: stsd |
mp4a: aac box 这个box实际就是继承了audio sample entry box |
moov:trak: mdia: minf: stbl: stsd |
esds: 包含在mp4a里, |
moov:trak: mdia: minf: stbl: stts |
stts: Time to 例2: 音频 |
moov:trak: mdia: minf: stbl: stss |
stss: syn 但音频里没有这个box, |
moov:trak: mdia: minf: stbl: stsc |
stsc: Sample 例2:音频 |
moov:trak: mdia: minf: stbl: stsz |
stsz: Sample |
moov:trak: mdia: minf: stbl: stco |
stco: Chunk |
moov:trak: mdia: minf: stbl: smhd |
smhd: sound |
avcC: AVC descriptor box |
avcC: AVC aligned(8) class AVCDecoderConfigurationRecord { unsigned int(8) configurationVersion = 1; unsigned int(8) AVCProfileIndication; unsigned int(8) profile_compatibility; unsigned int(8) AVCLevelIndication; bit(6) reserved = ‘111111’b; unsigned int(2) lengthSizeMinusOne; bit(3) reserved = ‘111’b; unsigned int(5) numOfSequenceParameterSets; for (i=0; i< numOfSequenceParameterSets; i++) { unsigned int(16) sequenceParameterSetLength ; bit(8*sequenceParameterSetLength) sequenceParameterSetNALUnit; } unsigned int(8) numOfPictureParameterSets; for (i=0; i< numOfPictureParameterSets; i++) { unsigned int(16) pictureParameterSetLength; bit(8*pictureParameterSetLength) pictureParameterSetNALUnit; } } 见http://www.nhzjj.com/asp/admin/editor/newsfile/201011314552121.pdf |
btrt: bit rate box |
btrt: bit rate |
avc1 |
class AVCSampleEntry() extends VisualSampleEntry (‘avc1’){ AVCConfigurationBox config; MPEG4BitRateBox (); // optional MPEG4ExtensionDescriptorsBox (); // optional } class AVCConfigurationBox extends Box(‘avcC’) { AVCDecoderConfigurationRecord() AVCConfig; } class MPEG4BitRateBox extends Box(‘btrt’){ unsigned int(32) bufferSizeDB; unsigned int(32) maxBitrate; unsigned int(32) avgBitrate; } class MPEG4ExtensionDescriptorsBox extends Box(‘m4ds’) { Descriptor Descr[0 .. 255]; } |
:
Trouble shooting
1, 播放速度不正常, 哪个参数可调?
mdhd->timescale, 数字越大, 则播放速度越快
2, 拖拉不正常, 哪个Box可调?
stss, 如果只有一条entry, 则拖拉会产生cpu 100%的情况. 如果没有entry, 则拖拉会略有停顿
3, 音频,视频分别整合成mp4文件可以播放, 但音频,视频都整合进mp4文件以后就无法播放.
trak->track_id, 两轨可能都用同一ID, 则不成. 视频为1, 音频为2,则可以解决这个问题
mp4格式(转帖加修改) 转载的更多相关文章
- C#用ckplayer.js播放 MP4格式视频实现 边加载边播放
MVC设计模式下 在View页面里面使用ckplayer.js 加载视频 ,在MP4格式视频上传之后 我发现某些视频可以边加载边播放 但是有一些又不行,找了下原因是因为视频的元数据信息在第一帧的时候就 ...
- 优酷爱奇艺视频转换为MP4格式工具
本君今天分享两个免费的视频格式转换工具,分别是爱奇艺和优酷的(腾讯的有点复杂,等整理完再分享).教程都是一步步亲手操作的,每一步都有配图.希望各位老板多转发分享,谢谢! 一爱奇艺QSV转MP4格式 解 ...
- 常用MIME类型(Flv,Mp4的mime类型设置)(转载)
转载地址:http://www.cuplayer.com/player/Help/2011/0625/83.html 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过htt ...
- 【转】如何将qlv格式的腾讯视频转换为mp4格式
一般来说,每个视频网站都会有自己的视频播放格式,如优酷的KUX.爱奇艺的QSV和腾讯的QLV等.但是大家知道,优酷是有转码功能的,而就目前来说腾讯视频还没有转码功能,这就给大家造成了一定的困扰.这里呢 ...
- 【转】qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式
狸窝 复制 收藏 保存到桌面 快速找教程方案 反馈需求 社会主义核心价值观 客服QQ41442901 马上注册 升级VIP 对于视频文件之间的转换问题,我也已经是无力吐槽了,每个 ...
- Flv视频格式如何转换成MP4格式
如何将flv视频格式转换成MP4格式呢?随着现在视频格式的不断多样化,视频格式转换的问题也成了现在生活中常见的问题,那么我们应该怎样将flv视频格式转换成MP4格式呢?下面我们就一起来看一下吧. 操作 ...
- 如何将qlv格式的腾讯视频转换为mp4格式
一般来说,每个视频网站都会有自己的视频播放格式,如优酷的KUX.爱奇艺的QSV和腾讯的QLV等. 但是大家知道,优酷是有转码功能的,而就目前来说腾讯视频还没有转码功能,下面是将qlv格式的腾讯视频转换 ...
- VS调试时JSON格式文件无法加载
VS调试时JSON格式文件无法加载 报错: 解决:在项目中的web.config中进行配置,configuration节中添加以下部份: <system.webServer> <st ...
- 史林枫:C#.NET利用ffmpeg操作视频实战(格式转换,加水印 一步到位)
ffmpeg.exe是大名鼎鼎的视频处理软件,以命令行参数形式运行.网上也有很多关于ffmpeg的资料介绍.但是在用C#做实际开发时,却遇到了几个问题及注意事项,比如如何无损处理视频?如何在转换格式的 ...
随机推荐
- UA池和代理池在scrapy中的应用
一.下载中间件 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件. - 作用: (1)引擎将请求传递给下载器过程中, 下载中间件可以对请求进行一系 ...
- JMeter性能(压力)测试--使用解锁
1. 首先去官网下载JMeter: http://jmeter.apache.org/download_jmeter.cgi 2. 解压缩后到目录 \apache-jmeter-5.0\bin 下找 ...
- join,fromkeys(),深浅拷贝
1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串例 # s= "哈哈"# s1=s.join('-')# print(s1)# s="呵 ...
- Linux常用操作分享
Java开发经常遇到的linux相关操作 1.常用的上传下载(Xshell5) 1).get 从远程服务器上下载一个文件存放到本地,如下: 先通过lcd切换到本地那个目录下,然后通过get file ...
- SpringBoot关于系统之间的远程互相调用
1.SpringBoot关于系统之间的远程互相调用 可以采用RestTemplate方式发起Rest Http调用,提供有get.post等方式. 1.1远程工具类 此处使用Post方式,参考下面封装 ...
- c# 后台AJAX
public class BackA { #region 后台 AJAX public static string GetPage(string posturl) { Stream outstream ...
- 【Jmeter自学】Jmeter性能测试报告(八)
http://www.cnblogs.com/YatHo/p/6092599.htmlhttp://blog.csdn.net/xiaojianpitt/article/details/4821554 ...
- 传输模型, tcp socket套接字
osi七层模型 tcp/ip四层模型 socket套接字 tcp 协议是可靠的 包括 三次握手 四次挥手 import socket # server server = socket.socket( ...
- gentoo virtualbox 无法启动
以前的 virtualbox 可以启动,现在无法启动. 原因是因为更新了内核,而 virtualbox 的模块没有跟着更新,所以导致无法启动. emerge --ask --oneshot @modu ...
- Python学习笔记_week3_函数
一.介绍 1.面向对象(华山派)--->类(独门秘籍)--->class(定义的关键字) 2.面向过程(少林派)--->过程--->def 3.函数式编程(逍遥派)---> ...