什么是TS文件格式
TS(Transport Stream,传输流)是一种封装的格式,它的全称为MPEG2-TS。MPEG2-TS是一种标准数据容器格式,传输与存储音视频、节目与系统信息协议数据,主要应用于数字广播系统,例如,DVB、ATSC与IPTV。传输流最初是为广播而设计的。后来,通过在标准的188字节数据包中添加4字节的时间码(TC),从而使该数据包成为192字节的数据包,使其适用于数码摄像机,录像机和播放器。
Tips:MPEG2是一种多媒体传输、复用技术,在数字电视广播中可提供数百个节目频道。复用的含义是,可以同时传输多层节目。MPEG-2标准中,有两种不同的码流输出到信道,一种是节目码流(PS: Program Stream ,节目流),适用于没有传输误差的场景;一种是传送流(TS : Transport Stream ,传输流),适用于有信道噪声的传输场景。TS流是将视频、音频、PSI等数据打包成传输包进行传送,主要用于节目传输。MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。
优点有:
● 动态带宽分配:由于TS的传输包长度是固定的,因此可将视频、音频和数据信息进行实时的、灵活的分配。
● 可分级性。
● 可扩展性。
● 抗干扰性。
● 接收机成本低廉。
什么是MP4
MP4或称MPEG-4第14部分(英语:MPEG-4 Part 14)是一种标准的数字多媒体容器格式。MPEG-4第14部分的扩展名为.mp4,以存储数字音频及数字视频为主,但也可以存储字幕和静止图像。因其可容纳支持比特流的视频流(如高级视频编码),为流媒体。详细内容可参见
MP4 和 TS的区别
主要有以下几点:
- ts文件不提供关于时长等信息,你无法在ts文件里去实现音视频的seek操作
- mp4不同于ts,是提供了时长等信息,可以执行seek到指定位置 .ts文件一般用于m3u8中, 或者提供了流媒体基础信息的前提下使用
- mp4文件可以在不下载完全媒体文件的前提下进行seek操作;因为其头部记录moov信息(moov box中包含编码、分辨率、码率、帧率、时长、音频采样率等等媒体信息)
MP4 装换为 TS
1、前往 ffmpeg 官网,下载页面: https://ffmpeg.org/download.html
2、选择苹果图标,进入如下链接,选择需要的版本进行下载
3、下载完成,解压即可
4、前往命令行终端,执行 ffmpeg 命令(需要进入到安装目录,也可以配置到环境变量中)
ffmpeg -i video.mp4 -r 30 -s 960x540 -an -f mpegts -codec:v mpeg1video -codec:a mp2 -qscale 0 video.ts
参数名称 | 备注 |
---|---|
-i | 输入要处理的视频文件路径 |
-r | 输出文件的帧频为 |
-s | 设置帧大小 格式为W * H 缺省160X128 |
-an | 不使能音频纪录 |
-f | 强迫采用格式fmt |
-codec:v | 强制使用codec编解码方式 |
-codec:a | 强制使用codec编解码方式 |
-qscale | 使用固定的视频量化标度(VBR) |
更多参数参见:https://www.jianshu.com/p/049d03705a81
前端播放ts
可以使用jsmpeg,官网地址
let player = new JSMpeg.Player(url [, options]);
相关参考
https://zhuanlan.zhihu.com/p/526685396
https://www.jianshu.com/p/c85149f37601
https://zh.wikipedia.org/wiki/MP4