关于ts是啥文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ts是啥文件?相关的知识,希望对你有一定的参考价值。
我下载了一个ts视频文件,有4.33G,但才2分29秒,非常清晰。这样的文件类型用在什么地方呀,这么大时间又这么短。
TS文件是一种媒体的扩展名,它是日本高清摄像机拍摄下进行的封装格式。MPEG2-TS(Transport Stream“传输流”;又称TS、TP、MPEG-TS 或 M2T)是用于音效、图像与数据的通信协定,最早应用于DVD的实时传送节目。MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。
扩展资料:
1个TS承载多个子TS,通常子TS是分组化基本流(PES, Packetized elementary stream);分组化基本流上承载基本流(ES,Elementary Stream),或者非MPEG的编码流,例如AC-3、DTS音频流,MJPEG、JPEG 2000视频流、字幕所需要的文本和图像、用于定义基本流的表、乃至电视台定义的电子节目表(EPG)等。
参考资料来源:百度百科-TS文件
参考资料来源:百度百科-MPEG2-TS
参考技术Ats是日本高清摄像机拍摄下进行的封装格式文件,全称为MPEG2-TS。
ts即"Transport Stream"的缩写。MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。
ts格式是一种新兴的高清封装格式,对ts格式解码,即将ts格式解码再编码成其他格式,国内常用的ts格式转换器狸窝全能视频转换器常见的转换模式有:ts转rmvb,ts转mp4、ts转avi、ts转wmv;对ts格式编码,即指将其他格式转换成ts格式。
值得注意的是,由于ts是一种高清封装格式,对ts格式编码或封装,其狭义的解释指将其解码再编码成ts格式,而其广义并是更常见的解释是,将其他高清视频不进行重新编解码,封装成为符合蓝光或ps3等高清播放机播放标准的ts格式,常见的转换或封装模式包括:tp转ts,mts转ts,mkv转ts,mov转ts。
扩展资料:
后缀为ts的这些视频传输流文件也实现与用于该TS的文件格式的编码标准。贴有.TS延伸,这些视频传输流文件中包含的视频数据和DVD盘的其他交互功能,例如菜单和表与可由观众来选择的项目。一组视频传输流文件通常存储在一个DVD盘。
标准DVD播放器与播放这些TS文件的支持,以及许多视频播放应用程序,视频开发工具和DVD创作程序可以用来打开和查看这些内容实施.TS文件。所述VideoLAN的VLC媒体播放器软件具有可安装在Microsoft运行的计算机版本的Windows为基础的系统,以打开并查看存储在这些TS文件的影像数据,而也有此视频播放节目的那为Mac和开发的版本Linux平台。
参考资料来源:百度百科——TS文件
随着从HDTV录制的高清节目在网上的流传,烧友们现在对TS这个名词大概已经不陌生了,但随之而来就是如何播放、如何添加字幕等等的一系列问题,本文将重点介绍一下这方面的应用操作。
先来简要介绍一下什么是MPEG2-TS吧。MPEG2格式大家都通过对DVD的接触而多多少少了解了一些,DVD节目中的MPEG2格式,确切地说是MPEG2-PS,全称是Program Stream,而TS的全称则是Transport Stream。MPEG2-PS主要应用于存储的具有固定时长的节目,如DVD电影,而MPEG-TS则主要应用于实时传送的节目,比如实时广播的电视节目。这两种格式的主要区别是什么呢?简单地打个比喻说,你将DVD上的VOB文件的前面一截cut掉(或者干脆就是数据损坏),那么就会导致整个文件无法解码了,而电视节目是你任何时候打开电视机都能解码(收看)的,所以,MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。
【MPEG2-TS流文件的简单回放】
有一些播放器软件可以直接播放MPEG2-TS流,比如:
=> 1.WinDVD 5.x
=> 2.VLC Media Player
=> 3.Elecard Player
等等。
播放前,先将TS流文件的后缀名改为 .mpg,以便播放器可以识别它是一个MPEG文件,否则一些\"以貌取人\"的播放器可能会拒绝提供服务。
修改了后缀名后,直接用播放器打开文件播放即可。
但是需要通过VOBSub外挂字幕的朋友,可能很快就会发现,在WinDVD里无法对MPEG文件加载字幕,这是因为WinDVD在对MPEG文件解码的时候,用了内部的解码流程,而没有按照微软的DirectShow标准去搭建解码框架,这样自然就无法触发VOBSub这些基于DirectShow标准的外挂控件了。这些问题将在\"MPEG2-TS流文件的高级回放篇\"里进一步解决。
【MPEG2-TS流文件的高级回放】
此篇主要介绍MPEG2-TS回放的DIY方法,此方法已经验证此前网上下载的若干韩国、日本HDTV片段以及HBO HD-Movie等TS文件。
你需要如下的一些软件:
1.一个支持MPEG2-TS格式的分离器(Splitter Filter)。
分离器的功能就是识别文件真正的格式,将其中的视频流数据、音频流数据分离出来,并发送给相应的解码器。
微软的DirectX里已经提供了此类的分离器,但是兼容性不好,而且甚至在DirectX9以及XP里的DirectX8中就取消了对TS流的支持。
我向大家推荐的是Elecard Player中的分离器,可以通过安装Elecard Player获得。我已经从里面提取出来上载到这里了,大家下载后自行注册一下该分离器控件即可(不是软件注册)。
2.一个MPEG2视频解码器和AC3音频解码器,可以通过安装WinDVD、CinePlayer等软件获得。
AC3解码器,我则推荐使用网上比较流行的由俄国人编写的一个开放源代码的免费控件,可以到http://www.shooter.com.cn/\?softid=ac3filterGPL2下载。
3.一个基于DirectShow架构的播放器,比如微软自带的Media Player(媒体播放器)、ZoomPlayer等等。
4.VOBSub字幕外挂控件。
这个大家也很熟悉了,就不多说了。不熟悉的朋友可以到http://vod.sjtu.edu.cn/vod/software/vodsub/vobsub.htm看看相关教程。
5.字幕文件
没有字幕文件,等于巧妇难为无米之炊嘛,去射手网搜索下载吧。注意,字幕文件都是按照某个版本的Rip文件就行分割的,未必就能找到与你的TS文件完全吻合的,可能需要自行进行调整时间延迟、合并、分割等工作。
对于很多朋友来说,MPEG2解码器/AC3解码器、播放器、VOBSub这些都是现成的,所以只要安装一个分离器控件,就可以让大多数的播放器来播放TS流文件了(记得改后缀名为.mpg)。
几点注意事项:
1.WinDVD是不能支持MPEG格式的VOBSub外挂的,不过不用失望,使用微软MediaPlayer、ZoomPlayer这些播放器都会用到WinDVD的视频解码控件(除非你同时安装了几个MPEG2解码控件,那么DirectX可能会自行选择一个注册级别最高的或者是最后安装的,可以通过VOBSub的Filter菜单里看到当前所用的解码控件)
2.高清节目尤其是1080线的画面外挂字幕会很明显地耗费CPU。
3.DirectX最好是8.1以上的,显卡驱动也最好是官方最新的而不是微软自带的。
TELESYNC (TS) -
A telesync is the same spec as a CAM except it uses an external audio source (most likely an audio jack in the chair for hard of hearing people). A direct audio source does not ensure a good quality audio source, as a lot of background noise can interfere. A lot of the times a telesync is filmed in an empty cinema or from the projection booth with a professional camera, giving a better picture quality. Quality ranges drastically, check the sample before downloading the full release. A high percentage of Telesyncs are CAMs that have been mislabeled.
除了使用外置的音源(一般是影院座椅上为听力不好的人设的耳机孔),TELESYSNC(TS) 和CAM的标准是相同的。这个直接的音源并不能保证是好的音源,这是它因为受到很多背景噪音的干扰。很多时候TS是在空的影院录制,或是用专业摄像机在投影室录制,所以图象质量可能比CAM好。质量的起伏可能很大,在下载前最好查看SAMPLE。很大比例的TS是从CAM错误标记成。本回答被提问者采纳
当前为浏览器导入 3rd 方 JS 节点模块的方法是啥?
【中文标题】当前为浏览器导入 3rd 方 JS 节点模块的方法是啥?【英文标题】:What is the current way to import 3rd party JS node modules for the browser?当前为浏览器导入 3rd 方 JS 节点模块的方法是什么? 【发布时间】:2016-05-12 19:55:03 【问题描述】:关于这个话题有很多问题和答案,但我似乎找不到最新的答案。
我想使用本地安装在 node_modules 中的模块hyperscript
。它没有 d.ts 文件。
我可以创建一个,我认为应该如下所示:
declare module 'hyperscript'
export default function H(...a: any[]) : HTMLElement;
我把它放在 src/typings/hyperscript.d.ts 中,打字稿似乎可以接受。
我的ts源文件有:
import H from 'hyperscript';
const element = H('h1', "This is a title");
我编译和捆绑:
browserify --debug src/main.ts -p [ tsify --noImplicitAny ] > js/bundle.js
一切顺利,但是当我尝试在浏览器中运行时,我得到:
Uncaught TypeError: hyperscript_1.default is not a function
我很确定超脚本只输出一个默认函数,因为在带有 babel/browserify 的普通 JS 中,我使用:
import H from 'hyperscript';
而且效果很好。
我的 package.json 看起来像:
"name": "hyperscript-example-ts",
"version": "1.0.0",
"description": "hyperscript typescript example",
"author": "Me",
"license": "MIT",
"private": true,
"dependencies":
"hyperscript": "latest"
,
"devDependencies":
"browserify": "latest",
"tsify": "latest",
"uglifyjs": "latest"
,
"scripts":
"build": "browserify --debug src/main.ts -p [ tsify --noImplicitAny ] > js/bundle.js"
我的 tsconfig.json:
"compilerOptions":
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"allowJs": true,
"declaration": false,
"noImplicitAny": true,
"removeComments": false,
"noLib": false,
"preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": true,
"outDir": "js",
"sourceMap": true,
"watch": false
,
"filesGlob": [
"src/**/*.ts",
"src/typings/**/*.d.ts",
"!./node_modules/**/*.ts"
],
"atom":
"rewriteTsconfig": false
非常感谢任何帮助!
编辑:再多做一些,看起来唯一的方法是将我的导入重写为:
/// <reference path="./typings/hyperscript.d.ts" />
import _H = require('hyperscript'); // Gets no type info from my d.ts file
const H: (...a: any[]) => HTMLElement = _H as any;
TypeScript 手册说我应该能够将标准导入语法与 3rd 方 JS node_modules 一起使用。引用this page:
/// <reference path="node.d.ts"/>
import * as URL from "url";
let myUrl = URL.parse("http://www.typescriptlang.org");
【问题讨论】:
【参考方案1】:声明文件基本上是开发人员试图向 TypeScript (more) 解释环境世界
在你的情况下声明:
declare module 'hyperscript'
export default function H(...a: any[]) : HTMLElement;
实际上是错误的。函数H
不是默认 导出。它是主要的出口。所以你真正想要的是:
declare module 'hyperscript'
export = function H(...a: any[]) : HTMLElement;
【讨论】:
以上是关于关于ts是啥文件?的主要内容,如果未能解决你的问题,请参考以下文章