这个是啥回事,我应该怎么弄啊!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这个是啥回事,我应该怎么弄啊!相关的知识,希望对你有一定的参考价值。
如题,下图!
MKV不是一种压缩格式,而是Matroska的一种媒体文件,Matroska是一种新的多媒体封装格式,也称多媒体容器 (Multimedia Container)。它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到一个Matroska Media文件当中。MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流。mkv不同于DivX、XviD等视频编码格式,也不同于MP3、Ogg等音频编码格式。MKV是为这些音、视频提供外壳的“组合”和“封装”格式。换句话说就是一种容器格式,常见的 DAT(是VCD的一种编码格式)AVl、VOB、MPEG、RM 格式其实也都属于这种类型。但它们要么结构陈旧,要么不够开放,这才促成了MKV这类新型多媒体封装格式的诞生。
Matroska媒体定义了三种类型的文件:MKV是视频文件,它里面可能还包含有音频和字幕;MKA是单一的音频文件,但可能有多条及多种类型的音轨;MKS是字幕文件。这三种文件以MKV最为常见。
Matroska最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,甚至囊括了RealMedia及QuickTime这类流媒体,可以说是对传统媒体封装格式的一次大颠覆!它现在几乎变成了一个万能的媒体容器,目前它所能封装的视频、音频、字幕类型包括:
AVI文件,包括采用DivX、XviD、3ivX、VP6视频编码,及PCM、MP3、AC3等音频编
码的AVI
RealMedia文件,包括RealVideo和RealAudio
QuickTime的MOV及MP4视频
Windows Media文件,包括ASF、WMV格式
MPEG文件,包括MPEG-1/2的M1V、M2V
Ogg/OGM 文件,包括Ogg Vorbis、OGM、FLAC文件
Matroska Media文件,包括MKV、MKA、MKS文件
WAV、AC3、DTS、MP2、MP3、AAC/MP4音频
SRT、USF及SSA/ASS文本字幕
SubVob图形字幕,后缀为IDX、SUB
BMP图形字幕,以一组BMP图片及时间码构成的字幕 。
此外,Matroska文件中还可包括章节、标签(Tag)等信息,甚至还可加上附件!需要指出的Matroska所谓的封装AVI、RM、MOV等媒体,但它并不是简单将它们不加改变的合并到Matroska中,而是将它们的音视频流进行了重新组织。
Matroska加入AVI所没有的EDC错误检测代码,这意味着即使是没有下载完毕的MKV文件也可以顺利回放,这些对AVI来说完全是不可想象的。虽然Matroska加入了错误检测代码,但由于采用了新的更高效的组织结构,用MKV封装后的电影还是比AVI源文件要小了约1%,这就是说即使加上了多个字幕,MKV文件的体积也不可能比AVI文件大。
Matroska支持可变帧率(VFR,即Variable Frame Rate)的视频编码,这种VFR视频的帧率是不固定的,它可在动态画面中使用较大的帧率,而在静态画面中使用较小的帧率,这样可以有效的减少视频文件的体积,并改善动态画面的质量。它的作用比目前广泛使用的VBR(可变码率)更为明显。
看看目前比较流行的多媒体容器类型,例如AVI,它可以容纳多种类型的视频编码和音频编码,像VP6、DivX、XviD等视频编码和PCM、MP3、AC3等音频编码; VOB则是另一种特点更为鲜明的媒体容器,它可容纳MPEG-2视频流、多个AC3、 DTS、THX、PCM音频流、多个不同语言的图形字幕流。
2MKV兼容性编辑
avi的出现已经超过了10年,渐渐体现出老态了,除了近年通过VD可以拥有2个音轨,没有其他的改进。
ogm的出现,标志着多音轨格式的出现,可以合成8个以上的音轨,音频上自然也多了ogg这个格式,重要的是可以“内挂”字幕,老外称为“软字幕”,可以任意开关,可以“内挂”8个以上的字幕,美中不足的是仅仅支持srt格式,并且不支持Unicode,对亚洲字符支持严重不足。
还有一个就是Chapter功能,可以自定义段落,播放时就可以选择了。是不是越来越像DVD啦?但是当时的ogm源码是不公开的,就那么几个人在开发,自然进度慢了,前一阵几乎陷入了“死亡”。最近宣布公开源码,加入Open Source行列,重新开始开发。
mkv就是在ogm停滞的那段时间出现的,由俄罗斯的程序员开发的,从一开始就是Open Source,因此得到了很多其他程序员的帮助,开发速度相当快。
ogm有的mkv都有,另外还有很多独特的功能。其中最令人振奋的就是Gabest(开发vobsub的公司)开发的Plugin,不仅开发了专门的播放器Media Player Classic(俗称MPC), 这个东西的强大相信用过的人都有体会。还开发了很多的MKV用的Mux(合成器),尤其是Real格式的Mux。 Real的rmvb是封闭格式,官方的Helix根本就不支持多声道所以尽管算法很优秀,但在声效大片的再现上就无能为力了,只能乖乖让位给可以合成AC3和DTS的avi以及ogm了。
但Gabest开发的Realmedia Splitter和mkv Mux可以让rmvb格式的视频和AC3、DTS合成mkv,从根本上克服了rmvb音频上的弱点。不仅如此,还开发了VSFilter.dll和SubtitleSource.ax这2个Plugin,宣布支持ssa和ass的格式软字幕。
总结就是下面几条:
1.支持多种格式的视频和音频,尤其是Real ;
2.支持多音轨,多达16条以上 ;
3.支持ssa,ass软字幕,多达16条以上 ;
4.支持段落选取(由制作人决定) 。
3发展前途编辑
Matroska的目标就是要取代旧式的媒体封装格式,其中最主要的目标就是AVI。 AVI已经诞生十几年了,目前它依然还保持着旺盛的生命力,但其原始架构过于陈旧,这使得它在支持新的音视频编码上非常困难,在非微软平台使用也不够方便。而Matroska使用的是一种开放的架构,拥有众多的先进特性,并且能跨平台使用,这是AVI所望尘莫及的。
不过AVl毕竟树大根深,它拥有最广泛的软硬件支持,而这一点正是衡量MKV是否成功的一个标志,但目前它还做不到这点,现在甚至还没出现一个能直接编辑它的软件。但在这么短的时间里,Matroska取得的进展也是非常引人注目的。
但Matroska毕竟还是一种发展中的技术,它没有深厚的背景可以依托,这决定了它不可能在商业领域(如DV、数字电视)里有所作为,同样的道理,它要想取代 AVI成为一种通用的多媒体封装格式并不会十分顺利。不过,DVDRip的普及历程告诉我们,流行才是硬道理!DVD播放机厂商现在不是也已经放下架子,对DVDRip提供支持了么。所以,Matroska目前最需要做的就是让更多的人知道它。
MKV的目标
建立一个现代、灵活、延伸性、多平台的互联网服务器,快速查找文件; 发展一套创作和编辑用的Matroska文件工具,并在GNU通用公共许可证下发布; 开发一个网络图书馆,允许开发者向Matroska申请,将他们自行开发的应用软件加入Matroska音频格式,并在GNU宽通用公共许可证下发布; 与硬件制造商合作,把他们的音频格式嵌入多媒体的设备里; 支授以Matroska在各种各样的操作系统(包括Windows、DirectShow、Linux、Haiku和多媒体处理框架GStreamer)的运作 。[1]
4使用指南编辑
MKV的播放
播放Matroska这类格式并不需要专用的播放器,任何DirectShow的播放器都可以播放MKV、OGM、MP4文件,如常见的Media player Classic、BSplayer、ZoomPlayer播放器等,甚至包括 Windows Media player。仅需安装相应 Matroska 解码分离器插件即可。
现有的播放器要播放MKV格式仅需安装相应的分离器插件即可。
MKV的制作
从DVD到MKV——用VirtualDubMod合成MKV
VirtualDubMod是VirtualDub的一个变种,它可以直接将MPEG-2文件编码成MKV文件,也就是说它可以直接将DVD转换成MKV视频。VirtualDubMod也是目前唯一能剪辑MKV视频的工具。
运行VirtualDubMod,从“File”菜单中选择“Open Video file”命令,导入DVD中的VOB文件,在导入时会弹出一个音轨选择对话框,具体选择哪一条AC3音轨要根据在播放器中的播放情况而定,一般情况下是选择第一条音轨。
文件导入后按F7键设置输出,在弹出的“Save As”对话框中设置文件名及保存的位置,保存类型要选择Matroska File(MKV)。接下来在下面的“Video”栏中选择“Video Mode(视频模式)”为“Full processing mode(完全处理模式)”,然后单击“Change”按钮,会弹出“Select video compression(选择视频压缩)”对话框,你可在这里选择DivX 5.1.1、XviD、VP60/61/62等编码,然后单击“Configure”按钮设置编码参数,码率一般设置为1200~1500bps,这和制作普通的DVDRip没有任何区别。完成后即可回到“Save As”对话框,单击“保存”按钮进行编码输出。
不过VirtualDubMod只能对单个的VOB文件进行编码,如果要将一整部的DVD编码成MKV,可能需要对4~5个VOB文件进行编码。另外,它只能对视频部分进行编码,音频部分则保持不变直接合并到MKV中。对于多个编码好的MKV文件,你可以从“File”菜单选择“Append segment(附加片段)”命令将它们逐个进行合并。要对MKV文件进行剪辑也可用VirtualDubMod,这和剪辑普通AVI文件是完全一样的。
强大的MKV合成工具——MKVtoolnix
Mkvtoolnix是目前功能最齐全的Matroska合成器,除了WMV和MPEG-1/2之外,它几乎能将所有的媒体合成到MKV中去。
1、安装及运行
Mkvtoolnix解压之后,还要将Mkvtoolnix Runtime Package也一并解压到Mkvtoolnix所在的目录中,否则它是无法运行的。Mkvtoolnix的主程序mkvmerge.exe是命令行程序,不过这个软件包中还提供了一个GUI外壳程序mmg.exe,可运行它来对mkvmerge.exe进行操作。
2、文件导入
运行mmg.exe后,会弹出软件的图形界面,首先选择“Input”选择卡,点击上部“Input files”处的“add”按钮,将要合并的视频、音频、字幕文件一一添加到文件列表中,Mkvtoolnix功能的强大主要体现在能导入的格式上,除了MPEG视频外,几乎所有的主流音、视频格式它都能容纳,包括OGM和MKV格式本身。
3、轨道设置
如果视频中已经包括有音频,它还可以选择是保留还是不保留该音频!如果要去掉原有的音频,先在文件列表中选中该视频文件,然后在下面的Tracks列表中将音轨前的勾去掉即可。这样的功能要比OGM方便得多。
所有的轨道都可以加上语言类型、标题、作者等标示,先选定某个轨道,然后在下面“Track Options”处的“Language”下拉列表中进行选择。在字幕或声音不同步的情况下,还可设置声轨和字幕播放的延时时间,可将延时数值填入Delay后的文字框(单位为毫秒)。
4、文件分割
如果想将合并好的MKV文件刻入光盘,而最终合并好的文件可能超过光盘的容量的话,你可以对文件进行分割。选择“Global(全局)”选项卡,在其中的“Split(分割)”栏中勾选“Enable splitting(进行分割)”,分割有两种方式:“by size(按文件尺寸)”、“by time(按时间)”,这里当然应该按尺寸,具体的尺寸可从后面的下拉列表中选择。
5、输出
界面中的其它选项卡都是无关紧要的,可以不管。最后,在下面的“Output filename(输出文件名)”处设置输出文件的路径及名称后,点击“Start Muxing(开始合并)”按钮输出MKV文件。另外,Mkvtoolnix也可用于分离MKV文件,只要将MKV文件导入,再将每个码流单独命名输出即可。
MKV的转换
Mkvtoolnix不能将ASF、WMV合并到MKV中,这个任务要由asf2mkv recorder 完成。运行asf2mkv recorder,在软件窗口的地址栏中输入源文件的完整路径(也可复制),然后单击“Record!”按钮,会弹出另存为对话框,在其中设置好MKV文件保存的路径及名称后即可输出MKV文件。
asf2mkv recorder只是简单的将ASF、WMV文件转换成MKV文件,不能合成多种音频,也不能合入字幕。不过,这种包含Windows Media的MKV文件已经可以用Mkvtoolnix进行处理了,要做到这些自然也不困难。
MKV Video Converter视频转换器是一款易于使用的MKV视频转换软件,可以帮助您转换MKV到AVI,MKV到iPod,MKV到DVD,并且转换出优秀的图象和声音。通过指定对话的起止时间你就可以剪切DVD的任意一个部分来制成MKV录像。
该MKV转换工具,也支持MPEG, MP4, MOV, WMV, WAV, VCD, VOB, PSP etc to MKV(Matroska Video)文件。
MKV的刻录
mkv不同于DivX、XviD等视频编码格式,不同于dvd视频格式,可以刻录mkv,同时支持加入mkv视频的独立外挂字幕(srt)文件。而很多刻录软件不支持导入进行刻录,一般在刻录前先转换成mpeg2格式文件。
MKV的采集
目前可做MKV格式视频采集的程序有两个,一个是VirtualVCR,一个是Media Player Classic,其中以前者的功能最为强大。Virtual VCR带有功能完善的电视调谐器,可方便的采集包括电视在内的模拟视频源。
(1)VirtualVCR-Matroska
用普通的VirtualVCR版本是不能采集MKV视频的,必须使用VirtualVCR-Matroska版,这是一个绿色软件,直接用WinRAR解压出来就可以使用了。
(2) 设置采集设备
运行VirtualVCR,在其主界面工具栏中单击设置按钮,会弹出“Settings”对话框,首先选择“Devices(设备)”选项卡,在“Device Selection”栏中选择视频(如Philips Proteus7130电视卡)及音频采集设备。然后选择“Video Source(视频源)”,共有三个选项“Video Tuner”即电视调谐器,“Video Composite”即AV复合端子,“Video SVideo”即S端子,如果要采集电视就选择“Video Tuner”。
(3)设置电视调谐器
如果采集电视,要对电视调谐器进行设置。选择“Tuner”选项卡,单击“TV Tuner Device(电视调谐设备)”按钮,会出现电视调谐器属性面板,在这里要设置好电视接收的国家代码(中国为86)及视频制式,视频制式可选择PAL-B。完成然后回到“Tuner”选项卡中,单击“Scan”按钮,开始扫描电视频道。扫描出的电视频道会出现在左边的列表中,双击某个数字就会播放某个频道。这一步只在采集电视节目时需要设置,如果采集来自AV端子和S端子的视频则无需理会这里的设置。
(4)视频参数设置
选择“Video”选项卡,首先选定“Use Custom Settings”复选框,然后设置其“Frame Size(帧尺寸)”,尺寸及视频的分辨率,可根据机器的性能来设置,如果机器的性能强劲,可设置为640×480(由于电视的质量不太高,更高的分辨率意义并不大)。“Frame Rate(帧率)”决定了视频是否连贯,一般在25FPS就行了。
下面的“Use Compression”也应该勾选,这样你就可以使用MPEG-4类的Codec来进行编码了。视频Codec建议选择DivX Pro 5.1.1,它的编码速度要比同类的Codec快一些,这样可保证尽量少掉帧。点击“Prop”按钮可设置编码Codec的参数,主要是码率的设置,一般根据画面的分辨率来设置就行了,但如果采用较高分辨率,还需要将画面做消除interlace(隔行)处理,这一般需要较高的硬件配置。
(5)音频参数设置
选择“Audio”选项卡,选定其中的“Capture Audio(采集音频)”和“Compress Audio(压缩音频)”两个复选框,然后“Compress Audio”选择合适的音频编码。因为是实时采集,它对音频编码的要求比较苛刻,MP3肯定不行,因为它会用很多CPU资源。最好使用Windows Media Audio V2,参数设置为44.1KHz,64~128Kbps,Stereo,这样可兼顾音频文件的质量、速度与体积。
(6)文件保存设置
最后选择“File”对话框,设置采集文件的名称及保存的路径。“Setting”对话框中还有一个“Stop”选项卡是用于设置采集的停止条件的(如时间和剩余硬盘大小)。所有的设置完成后,即可回到主界面进行采集。
(7)采集MKV视频
在主界面中单击工具栏“录制”按钮,即可进行采集,采集时你可按下工具栏中的“Toggle Stats”按钮,打开“Stats”面板,查看有关的采集数据,如非常关键的丢帧数量,丢帧数量通常应该在总帧数的2~3%以下,否则会让人觉得很不流畅。如果丢帧太多,可适当降低采集参数(分辨率、码率)。
Matroska的发展速度相当快,它未来的目标是要使文件具备流媒体特性,可通过HTTP及RTP协议进行流式传输,另外为这种格式增加一种类似DVD菜单的功能也纳入了下一步的发展计划。当这些计划完成后,我们可以看到一个功能更强大,更全面的多媒体封装格式。追问
哥,那么长,那么专业的词语,我真的看不懂,你就告诉我该怎么做才能打开它。
追答简单来说,暴风影音来播放
追问😓
参考技术A 说白了就是播放器不支持你这个格式,下一个影音先锋试试追问把它拉到其他播放器看看?
追答对,普通的播放器根本不能解码这个格式的视频,你要看战狼?我有个mp4版的
这个 -> 符号是啥意思?
【中文标题】这个 -> 符号是啥意思?【英文标题】:What does this -> symbol mean?这个 -> 符号是什么意思? 【发布时间】:2009-10-14 10:23:51 【问题描述】:在我看到一个使用 -> 而不是点符号的 iPhone SDK 的代码 sn-p 之后,我现在有点困惑。它看起来很像 PHP,但它确实可以在 iPhone 上运行。谁能解释一下 -> 是怎么回事,我应该知道一些深层的 C 机密吗?
例子:
- (void)setFileURLs: (NSArray*)elements
if (self->fileURLs != elements)
fileURLs 是一个实例变量或属性,如下所示:
@property(nonatomic, retain) NSArray *fileURLs;
还有一个用于文件 URL 的 @synthesize。 现在我认为是这样的:因为这是 fileURL 的 setter 方法,所以使用点符号来访问实例变量会很糟糕。事实上,当我这样做时,应用程序崩溃了。那是因为它一遍又一遍地调用自己,因为点符号访问访问器方法而不是直接访问 ivar。但是 -> 将直接访问 ivar。
如果那是对的,那么问题会有所改变:为什么要写“self->fileURLs”而不仅仅是“fileURLs”?在它前面添加 self-> 开销有什么意义?是否有意义?为什么?
【问题讨论】:
【参考方案1】:a->b
只是写(*a).b
的另一种方式。这是一种访问结构字段或指针引用的对象的实例变量的方法。
【讨论】:
【参考方案2】:请参阅“其他运营商”部分:
http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B
由于self
是一个指针,你必须使用->
而不是.
来访问它的成员。在self
引用前面加上fileURLs
可能只是作者使用的一种编码风格(相当于写this.member
)。
【讨论】:
除了因为定义了一个属性,self.fileURLs 就可以正常工作......似乎有人习惯于使用 Objective-C 进行 C++。 self->fileURLs 正在访问成员变量(如 mouviciel 上面指出的)。 self.fileURLs 正在运行 fileURLs 属性的访问器方法,它可能返回完全不同的东西。以上是关于这个是啥回事,我应该怎么弄啊!的主要内容,如果未能解决你的问题,请参考以下文章
从别人电脑里传过来的CAD图纸在我电脑里打开就乱了,文字和线都重叠了怎么回事
我的电脑破解myeclipse2013的时候运行不了cracker.jar文件 是怎么回事啊