首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MP4文件格式的解析,以及MP4文件的分割算法

MP4文件格式的解析,以及MP4文件的分割算法   mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。...这篇文章先简单介绍一下mp4文件的大体结构,以及它的分割算法,之后再写文章介绍如何把mp4完美应用在点播项目中。...MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V,  3GP, F4V等。   ...还好,大部分mp4文件没有那么多的box类型,下图就是一个简化了的,常见的mp4文件结构: ?   ...二、MP4文件的分割算法   所谓“分割”,就是把大文件切成小文件,要实现mp4的分割,   首先,需要获取到关键帧列表   然后,选择要分割的时间段(比如从关键帧开始)   接着,重新生成moov box

7.9K140

FFmpeg合并MP4文件

今天我们就用FFmpeg来合并两个mp4文件。 1. 首先需要下载安装FFmpeg ,从FFmpeg的官网就能下载各种操作系统上的安装文件。...直接下载编译后的exe文件即可。在bin文件夹下面可以找到三个exe文件 ? 为了方便使用可以将这个bin文件夹加入到你的环境变量里面。 2.生成需要合并的mp4文件列表。...打开cmd.exe,改变路径到包含mp4文件夹(我这里的文件夹名是123),然后运行如下代码,就可以得到一个mylist.txt文件,里面会包含所有需要合并的mp4文件的名字。...(for %i in (*.mp4) do @echo file '%i') > mylist.txt ? 3....利用FFmpeg 来合并mylist里面包含的所有mp4文件 ffmpeg -f concat -i mylist.txt -c copy output.mp4 最后我们就能得到一个合并之后的mp4文件

7.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    解析 MP4 文件读取信息

    认识 MP4 视频(下) 接下来我们就要去手动解析 MP4 文件,注意这可不是用 FFmpeg 来解封装,而是从 MP4 文件中一个一个字节读取信息并解析它的含义获得想要的内容。...平常一看到后缀是 .mp4文件,脑海里一想到的就是视频,但其实不管后缀如何,它也还是一个二进制文件,可以按照二进制的方式进行读取和写入。...解析 MP4 文件获取信息 举个例子,在 Mac 上用 010 Editor 软件去查看一个 MP4 文件,以 16 进制显示,效果如下: 从图中箭头指示处可以看到 ftyp 和 mvhd 两个 Box...以上只是个简单例子,说明完全可以去手动解析 MP4 文件获取它的格式信息。...在接下来的文章,我们就会去实践手动解析 MP4 文件,逐一拆解每个 Box 格式,发掘其背后的另一种用法,加强对音视频的处理能力。

    1.1K30

    JavaCV推流实战(MP4文件)

    本篇概览 自己的mp4文件,如何让更多的人远程播放?...本次实战,我这边涉及的环境信息如下,供您参考: 操作系统:macOS Monterey JDK:1.8.0_211 JavaCV:1.5.6 SRS:3 准备MP4文件 准备一个普通的MP4视频文件即可...文件,推送到SRS服务器 * @date 2021/11/19 8:49 */ @Slf4j public class PushMp4 { /** * 本地MP4文件的完整路径(两分零五秒的视频...文件存放的地方,请改为自己电脑上MP4文件存放的位置 SRS_PUSH_ADDRESS是SRS服务的推流地址,请改为自己的SRS服务部署的地址 grabber.start(true)方法执行的时候,内部是帧抓取器的初始化流程...,会取得MP4文件的相关信息 recorder.record(frame)方法执行的时候,会将帧推送到SRS服务器 编码完成后运行此类,控制台日志如下所示,可见成功的取到了MP4文件的帧率、时长、解码器

    1.3K20

    多媒体文件格式剖析:MP4

    2.MP4识别工具 针对MP4文件的识别,有基本信息识别和BOX信息识别; 基本信息:基本信息就是MP4的基本属性,宽高,track信息,以及track详情; BOX信息:MP4由多少个BOX嵌套而成,...mp4 文件处理的所有操作; 合并文件:test.h264和test.aac合成test.mp4,我们使用camera采集信息的时候,这样库很有帮助,帮我们合成一个mp4文件; 合并两个 mp4文件,但是要求两个文件的编码格式一样...该Box应该被放在文件的最开始,指示该MP4文件应用的相关信息。...一个MP4文件中的媒体可以包含多个track,且至少有一个track,这些track之间彼此独立,有自己的时间和空间信息。...信息,是无法继续解析mdat信息的; 这也间接说明了MP4文件并不是流式文件,它的诞生有很强的时代背景,在如今流式文件满天飞的时代,MP4是不能作为直播的封装格式存在的。

    2.8K10

    M3U8-TS文件合并为MP4文件

    TS文件合成一个MP4视频,需要的注意点有: 有些M3U8视频是加密的,TS源文件需要解密才能播放 TS文件一个个拼接的方式最后得到的还是一个TS视频,只不过比较大一点,并不是后缀名改成.mp4就是MP4...TS转化为MP4 之前说过,TS合并通常的做法使用InputStream读取一个一个的TS分片,然后利用OutputStream写入本地的MP4文件中,这样看上去好像是生成了一个新的MP4文件,但是实际上这个新的视频是真正的...mpegts一般是放在m3u8索引文件中的分片,单独拿出来用虽然可以播放,但是有很多问题:(1)无法有效seek;(2)获取不了总时长; mp4视频封装格式是目前使用最为广泛的视频格式,一方面因为mp4...如何将mpegts格式的视频转化为mp4的视频? 最好的做法就是将最终生成的文件按照MP4的封装规则重写一遍,这样最终生成的文件肯定是MP4文件。...我们不用对照MP4的位flag来一个个生成,只要借助ffmpeg来帮我们实现这个转化就可以了。 对源文件进行解封装处理,取出源文件的音频流和视频流 创建目标文件的封装格式头信息。

    4.2K20

    解析MP4文件中的sps和pps

    3 MP4文件中所有数据都封装在box中(对应QuickTime中的atom),即MP4文件是由若干个box组成,每个box有长度和类型,每个box中还可以包含另外的子box(称container box...一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(Movie Box),它是一种container box...,子box包含了媒体的metadata信息;MP4文件的媒体数据包含在“mdat”类型的box(Midia Data Box)中,该类型的box也是container box,可以有多个,也可以没有(当媒体数据全部引用其他文件时...文件中h264的 SPS、PPS获取 1 【参考依据】ISO/IEC 14496-15 (下载) 2 【综述】在H264中,SPS和PPS存在于NALU header中,而在MP4文件中,SPS...文件中的H264 data /NALU slice 1 【参考】H264官方文档(下载) + 毕书—新一代视频压缩编码标准(下载) 2 【综述】 ① 在MP4格式文件中,H264 slice并不是以

    3.6K20

    Android中如何提取和生成mp4文件

    MediaMuxer类主要用于将音频和视频数据进行混合生成多媒体文件(如:mp4文件),而MediaExtractor则刚好相反,主要用于多媒体文件的音视频数据的分离。...本文将介绍如何利用Android SDK提供的MediaExtractor和MediaMuxer类来完成mp4文件的提取和生成,指出开发过程中会遇到的坑,并给出简单的Demo示例代码。...Demo的目标:提取input.mp4文件中的视频数据,生成除去音频数据之后的纯视频output.mp4文件。...通过 addTrack() 添加了数据通道之后,记录下函数返回的 trackIndex,然后就可以调用 MediaMuxer.writeSampleData() 愉快地向mp4文件中写入数据了。...小结 关于Android中如何提取和生成mp4文件就总结到这里了,有任何疑问或者建议欢迎留言或者来信lujun.hust@gmail.com交流,或者关注我的新浪微博 @卢_俊 获取最新的文章和资讯。

    2.1K70

    MP4文件虚拟HLS分片技术,避免服务器大量文件碎片

    MP4文件虚拟HLS分片技术,避免点播服务器的文件碎片 本文主要介绍了通过虚拟分片技术,把MP4文件,映射为HLS协议中的一个个小的TS分片文件,实现了在不实际切分MP4文件的情况下,通过HLS协议播放...MP4文件,从而避免了对MP4进行点播,尤其是大的MP4文件,需要长时间缓冲MP4头部数据的问题,同时可以解决对MP4文件进行切分,会在服务器制造出大量的文件碎片的不利情况。...需要指出的一点是,MP4基本上是可以分为普通MP4和FragmentMP4来,后者主要特征包含许多moof box把mp4文件分割为许多可以单独解码的单元,更适合与流媒体场景下的数据传输,我最早见到它的应用...当然常见解决方案,就是文件切分,把大的MP4文件,切为小一点的MP4文件,这样每块的MP4的加载就会快很多,这个也是很多视频网站的解决方式,这样的切分也还好,分片数量不算很多。...虚拟分片逻辑 一个常见的mp4文件结构如下图所见。

    4.8K131
    领券