★硬邦邦成人网站,如果你年龄未满18岁请立即离开!★网站图片可能需要翻墙观看。★网站评论审核比较慢 大家耐心等待 ★xxshe.club xxshe.info xxshe.top 为硬邦邦备用域名大家请牢记

视频播放备忘录(一)

性玩具 KK 11年前 (2010-08-02) 1201次浏览 117个评论 扫描二维码

视频播放备忘录(一)

前些日子,KK 在逛某个 bt 发布站的时候看到一位热心的发布者在资源内容介绍里写了一些关于视频格式选择的内容,KK 看完后发现谬误连连,一时头脑发热,抛下两句冷言冷语扬长而去。事后想想,毕竟作者出发点是好的,KK 这样冷嘲热讽实在有点过分了,谁都是从不懂到懂的。与其装 13,不如来点实在的,于是 KK 就写了这篇文章,与各位来聊一下电脑上(主要指 windows 操作系统下)播放常见视频格式时所遇到的一些技术细节和问题,希望对大家有所帮助。

1. 基本概念:
播放器之所以能让一个视频在电脑上同时呈现画面和声音甚至字幕,是因为许多“小家伙”在后台辛勤工作的结果,这些“小家伙”就是解码器和分离器(其实还有视频和音频渲染器等等,不过这并不是本文的重点)。整个视频播放的过程简单来说大概是这样的:分离器将视频分离为视频部分和音频部分(当然某些高级的格式还带有字幕,甚至多条视频音频),然后视频和音频经过对应的解码器解码,通过视频,音频渲染器呈现出来。下图是一个叫做 GraphStudio 的工具,用它加载视频文件后可以清晰的看到这个视频在后台经过了哪些处理。
视频播放备忘录(一)
说到底,大多数播放器只是一个前端,它通过调用各种解码器,分离器以及渲染器来播放视频文件。

在 windows 下绝大多数的播放器都是基于 DirectShow 这个媒体框架的,但是跨平台的播放器一般不使用 DirectShow(比如 quicktime,realplayer),而是使用它们自己的媒体后端。不过由于 mplayer 是开源的播放器,所以一些经过改进的 windows 版本是支持 directshow 的。(关于 DirectShow,KK 的理解不是很深刻,上面那段可以会有谬误,如果有了解这方面的朋友请指正)

2. 格式:
各位看新番,看 dvd/bd rip,看各种剧,看电影,看预告片,甚至看在线视频时都会碰到各式各样的视频格式,有 avi,mp4,mkv,wmv,mov,mpg,rm,rmvb,flv,ogm 等等等。以前这些格式往往都需要对应的播放器才能播放,比如 mov 必须用 quicktime,rm 必须用 realplayer。而现在出现了各种所谓的万能播放器,几乎所有格式通吃。说到底并不是播放器 NB 了,而是这些格式有了对应的分离器,使得各种播放器可以调用,比如以前所谓的让 windows media player 播放 rm 格式的插件,说白了就是一个 rm 和 rmvb 格式的 DirectShow 分离器而已。

各种格式只是不同的封装形式即不同的媒体容器,大家可以将这些格式想象成不同的便当盒,有些便当盒比较小,只能装下饭和菜(视频和音频),有些除了饭菜还能装下筷子(字幕),高级便当盒是分层的,可以装很多不同的菜(多音轨,多视频轨)。至于饭菜的好坏优劣,那不是盒子所能决定的,所以说格式与视频质量的好坏并没有直接关系,真正决定视频质量好坏的是视频编码。

3. 编码解码:
只有分离器,没有解码器,是无法完成一个视频的播放的,这里给大家看一个文件名[POPGO][Mouryou_no_Hako][02][720P][BluRay][x264_aac][GB][46EBA9AC].mkv
各大字幕组在出片的时候都会用类似的一串东西来作为文件名,这已经是约定俗成的东西了,其中[x264_aac]就是指这个文件的视频和音频编码(这里要指出,x264 只是一个编码器,它是用来做 H.264/avc 视频编码的,将 x264 来标注视频编码略有不妥,嘛…人家做字幕也不容易,这种细节就算了)。可以看出,这是一个 mkv 封装的,以 h.264 作为视频编码,aac 作为音频编码的视频文件,由于 mkv 可以内挂字幕,所以文件里可能还包含字幕。那么如果要播放这个文件,除了需要 mkv 分离器(Haali,Gabest)还需要 H.264 解码器(ffmpeg,coreavc 等等)以及 aac 解码器。缺少任何一种解码器,那么播放时不是没画面就是没声音。

视频播放备忘录(一)

现在介绍一下一些常用的编码方式:vcd 用的是 mpeg1 视频编码(现在大部分的 galgame 的片头片尾动画仍然在用 mpeg1 编码),dvd 用的 mpeg2 视频编码,早期电影的 dvdrip 用的都是 Divx 视频编码,后来改用开源的 Xvid,而蓝光现在大部分用的是 H.264 编码(据说早期的蓝光仍然用的 mpeg2)。而各大字幕组常用的视频编码基本上就是 H.264,real video。

简而言之,只要装了对应的分离器,解码器,任何 DirectShow 播放器都可以播放相应的格式。如果你的操作系统是 win xp,你可以到 C:\Program Files\Windows Media Player  下面找到一个 wmplayer2.exe ,这东西就是 windows media player 6.4,十几年前的老古董了,基本就是个 DirectShow 播放器的空壳子,只有 5K,但是只要你装了正确的解码器和分离器,它照样什么都可以放。

视频播放备忘录(一)

视频播放备忘录(一)

无法直接截图,只能拍照了,这里放的是 RMVB

如果将以上内容看明白了,那么基本上不会有什么视频文件会难倒你了,碰到不清楚什么编码的文件,用相关的工具分析一下就一目了然了(比如 mediainfo)。
视频播放备忘录(一)
但是如何让视频放得合理,放得安心,放得舒服呢?KK 会在下次和大家继续讨论。

最后附上 KK 文章里所用到的小工具:MediaInfo 和 GraphStudio

大家有兴趣可以猜猜题图中放了那些片子,用了哪些播放器~


硬邦邦 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:视频播放备忘录(一)
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到
(117)个小伙伴在吐槽
  1. 深夜来上课
    2-D2010-08-03 00:01 回复
    • @2-D, 借用个沙发,详细写写这片名的内涵。 “[POPGO][Mouryou_no_Hako][02][720P][BluRay][x264_aac][GB][46EBA9AC].mkv” 【popgo】是字幕组名 【720P】(压缩的的分辨率)1280*720常见的还有【1080P】【480p】 【bluray】指片源是蓝光【x264_aac】 x264是视频压缩码 aac是指音频压缩码 【GB】是指简体中文 [46EBA9AC]是CRC码很有用,大家要是遇到视频播放花屏,可以用“RapidCRC”检查CRC有没有错。没有错的话,大概就是播放器问题了,解决方法是多备几个绿色的播放器。
      fan2010-08-03 10:45 回复
  2. 支持KK文章。個人比較喜歡的容器順序:MP4,avi,mkv,討厭容器,ts個人比較喜歡的視頻編碼:H.264,DviX/XviD,悲劇解碼:WMV9個人比較喜歡的音樂編碼:AC3,DTS,MP3,悲劇解碼:AAC_5.1CH另外放流的人分不清楚x264和H.264的區別以至於拿x264當做編碼tag來命名文件已經是氾濫的現象了。
    RedBlaze2010-08-03 00:02 回复
    • @RedBlaze, 很少人能说清楚H.264和H264的区别,更别说x264和H.264了,
      collinyea2010-08-03 00:07 回复
      • @collinyea, H.264是编码方式,x264是开源编码器,H264我也不知道是啥...求解~
        KK2010-08-03 00:18 回复
        • @KK, 查了一下,好像有*.h264這麼一種後綴名。不過是不被推薦的格式。
          RedBlaze2010-08-03 00:24 回复
        • @KK, 很多人会把x264,x.264,H264,H.264混淆(其实我也不敢说自己完全搞清楚了,以下如果有说的不对的地方还请高手指教) 简单来说: x264:x264就是采用H.264标准的 编码器/编码格式 X.264:个人表示貌似没有这个东西…… h264:一个文件格式,H.264编码的未经过封包的源格式 H.264:这个应该不用解释了,最大的范畴所以说,写H.264基本上是没什么错的,大家都是采用这个标准的,另外H.264这个H严格来说应该是要大写的……人家是规范嘛
          collinyea2010-08-03 09:24 回复
      • @collinyea, 那個,恕我寡聞,H.264和H264的區別我還真不知道,求解釋。
        RedBlaze2010-08-03 00:19 回复
    • @RedBlaze, 恩,喜好基本一致~
      KK2010-08-03 00:14 回复
  3. 拜见KK……这次走在视频的康庄大道上了
    collinyea2010-08-03 00:03 回复
  4. KK 你其实还可以让大家猜猜 题图里放的都是那些作品的片段......
    Jimmy2010-08-03 00:04 回复
    • @Jimmy, 就上面第2个不太确定,是穿越时空的少女?
      菊花党党魁2010-08-03 00:10 回复
      • @菊花党党魁, 上面第三个(就是最小那个)是什么? 第二个乍一看以为是夏日战争的夏希出浴镜头,考据后发现没这个镜头
        collinyea2010-08-03 10:05 回复
      • @菊花党党魁, 对的
        shinraku2010-08-03 16:36 回复
    • @Jimmy, 恩,这就加上。话说一共7个播放器,其实我更想让大家猜是哪7个播放器...
      KK2010-08-03 00:13 回复
      • @KK, Mplayer QuickTime KM WMP Winamp 其他就不明了 GOM? QQ?....
        Jimmy2010-08-03 00:46 回复
        • @Jimmy, 详细答案我会在下次公布的-_____________-
          KK2010-08-03 01:03 回复
    • @Jimmy, 一:XX百合作,二:穿越时空的少女,三:... 四:星际牛仔(KK看片还真内涵!赞个) 五:没看过。莫非是新房片 六:5CM 七:矮瓜和铁通
      fan2010-08-03 10:51 回复
      • @fan, 5不就是AB么!!
        雙身人2010-08-03 14:29 回复
        • @雙身人, 看细好像是,难道是音无同学的
          fan2010-08-03 14:34 回复
  5. 第一幅图 用的都是什么播放器? 只认识几个
    Fomalhaut2010-08-03 00:17 回复
    • @Fomalhaut,mpc系;图标熟,不肯定,老版本QQ? ; winamp; quicktime 不知,GOM?; kmp ; mplayer
      kpt2010-08-03 01:12 回复
  6. 说到各式跟质量没关系,让我想到以前我都一直以为MP4都很差,比rmvb,AVI之类的差,知道后来看到某字幕组做的总大小9G的MF各式MP4的我才彻底改观了··· 不过还没看到.flv的有多么厉害的效果出现过··· KK说没有XP,正好我用的是,想说正好最近开放了贴图功能,结果今天要用才知道只是加入外连图片而已。我也没有网络相册,还是不弄了。 顺带一提,我按照KK说的看到了,实体大小是4.53KB
    kousyoutou2010-08-03 00:19 回复
    • @kousyoutou, MP4作為一種封裝格式還是相當優秀的。我之所以把它列作首選格式,不僅僅在於他本身對各種視頻音頻的良好支持,還在于他的競爭對手總是有各種不爭氣。ts在封VC-1編碼時,我的解碼總是出問題以至於光有聲音沒圖像。MKV在封DTS音軌時我的解碼器又有問題。至於AVI,廉頗老矣,都不用多說,不過兼容性倒是不錯。至於RMVB,不多做評價,不到沒的選擇,不拿RMVB做收藏。
      RedBlaze2010-08-03 00:31 回复
      • @RedBlaze, MKV封DTS来说,其实不算MKV本身的问题,应该是分离器的问题了。
        lizky2010-08-03 00:44 回复
      • @RedBlaze, 是你的解码器有问题还是就是有问题
        kpt2010-08-03 01:13 回复
        • @kpt, 分離器x2+解碼器x2四種組合都不行,但是我依舊不能確定是不是分離器或解碼器不行,畢竟軟件有bug是很正常的事情。但是出於眼不見為凈的考慮,我刪除了機子里所有ts格式的影片,反正我對電影的依賴度不大,動畫才是最重要的。而動畫,日本方面現在放流基本上都是mp4+H.264+AAC。
          RedBlaze2010-08-03 10:56 回复
    • @kousyoutou, RV编码太老了,新的RV其实也是采用的H.264标准的,我不知道为什么那么多人还是抱着RealVideo不放。
      collinyea2010-08-03 09:40 回复
      • @collinyea, 第一,RV知名度高,第二,ERP压RMVB非常简单
        lizky2010-08-08 23:44 回复
    • @kousyoutou, ACFUN上有720P甚至2880P的视频... 不过不知道是FLV还是MP4了
      plzs2010-08-03 09:45 回复
  7. media player classic,windows media player,winamp,quicktime,realplayer,KMplayer,Mplayer 就一个不太确定
    锋子2010-08-03 00:26 回复
    • @锋子, 很接近了,果然还是有高手的
      KK2010-08-03 01:04 回复
      • @KK, 很接近的话,难道不是kmplayer而是potplayer?好些都能换皮,很难说呢
        Picking2010-08-03 01:56 回复
  8. 刚刚回复的突然不见了 播放器:media player calssic,windows media player,Winamp,quicktime,realplayer,KMplayer,Mplayer 有一个不太确定
    caifeng2010-08-03 00:32 回复
  9. 咱对KK上面说的做几句旁注吧,不对请指正: 1.用MPEG1做galgame出了游戏引擎外,另外重要一点是MPEG1可以被各个系统自带的解码器很好的支持,而不会出现问题。 2.VMR9 EVR 还有新兴的MadVR渲染器可以用D3D来渲染,而不是直接调用DirectShow PS.感觉KK好像是用K-LITE的感觉,因为这两个工具都是K-LITE集成的。
    lizky2010-08-03 00:51 回复
    • @lizky, 关于1我完全同意。 关于2,你仔细看我的GraphStudio截图,最后视频渲染器就是VMR(当然也可能是VMR7)但是调用D3D就不是DirectShow了吗?或许只是渲染方式变了,但是整个媒体框架并没有变吧?这牵涉到调用系统API的知识,我就不太懂了。PS:我的确用的是K-lite~~
      KK2010-08-03 01:01 回复
      • @KK, D3D和DirectShow是DIRECTX里面的两个不同组件
        lizky2010-08-08 23:47 回复
  10. 只看出KM,QUIKCTIME,WMP,WINNAP
    澪时迷子2010-08-03 00:55 回复
  11. 受益了谢谢KK!!
    老天爷2010-08-03 01:00 回复
  12. mplayer的解码器是ffmpeg,但是必然性的不支持direct show渲染,于是加入了direct show渲染的就叫ffdshow MPC-HC+ffdshow+haali spliter+ac3fliter+xvid飘过
    Edison2010-08-03 01:04 回复
    • @Edison, ac3fliter是我最不爽的音頻解碼器,這句話可以追溯到我4年前我大三那陣子了,各種莫名問題。現在就用winDVD,cyberlink,或者FFdshow的spdif輸出,現在我一直在期待一個可以spdif直輸AAC的解碼器。不過貌似誰都沒興趣做。
      RedBlaze2010-08-03 11:01 回复
      • @RedBlaze, 自己做
        kpt2010-08-03 11:07 回复
      • @RedBlaze, AC3FLITER可以输出SPDIF啊!不过俺穷人,没条件,耳机党就行了……
        Edison2010-08-03 14:41 回复
        • @Edison, 不是,那個時候我還沒有SPDIF的音響(大學宿舍里誰放5.1啊),那個時候主要是5.1的矩陣上總是有問題。嘛反正我已經不用AC3filter很多年
          RedBlaze2010-08-03 20:13 回复
  13. GraphStudio --------- 这个是啥?!干吗用的..
    Eugene2010-08-03 01:08 回复
  14. MPC,WMP12,winamp,QT real?(不确定,很久没看过real了),Kmplayer,Mplayer
    Lee2010-08-03 01:27 回复
  15. 想问下如何在win7下用vobsub
    death2010-08-03 01:49 回复
    • @death, 播放器一般都有内建的字母加载功能,要加载双字幕用ffdshow加载就够了,不过话说我也不知道VOBSUB咋用,MPC-HC加外部滤镜都没用
      Edison2010-08-03 14:42 回复
      • @Edison, 把同与视频同文件名的字幕放在同一目录下看看
        路人2010-08-03 14:57 回复
    • @death, 你要先说清楚是什么播放器先。一般都要在滤镜里面加载VOBSUB。同时VSFitter滤镜有两个,一个是普通的,一个是自动加载版。这两个要分清楚
      lizky2010-08-08 23:49 回复
  16. - -某些发布网站上 那些XXXXX的 天天抱怨:” 这MP4怎么这么小啊 会不会不清晰啊 “ ” mkv比MP4清晰多了 怎么不放MKV的啊“ 乱七八糟的 一堆误人子弟的 然后还有不懂装懂的 说的可正经了 说了一堆没用的 - -||||||| 真受不了那群人
    柠檬可乐2010-08-03 02:35 回复
  17. ╮(╯_╰)╭这是个无解的问题。。简直无法想象爱装X的人不存在的世界 关于这篇文真是受教了。。又学多一点,感谢KK君的指教
    mozhiguodu2010-08-03 02:55 回复
  18. @KK, 基本正解。DShow实际上是一套视频处理的规范,主要包括两点: 1. 在视频处理过程中存在什么样的角色(分离器splitter,解码器encoder,渲染器render) 2. 各个角色之间如何相互协作:这是通过一系列预先定义好的COM接口来进行的。DShow的意义就在于任何人都可以根据它指定的规范来编写程序负责视频播放中一个或多个角色,然后和已经有的别人或者自己的DShow模块合作完成视频的播放过程。DShow是本身没有什么东西可以被“调用”的。就算整个的“播放框架”也只是一个按DShow规范实现的模块而已。(windows本身对这个播放框架有一个实现,你当然也可以自己另写一个。)所以回到渲染器的事情上来,VMR7/9都是符合DShow规范的渲染器。至于渲染器本身用什么办法把画面呈现出来,甚至你的渲染器到底会不会呈现画面,那就不是DShow关心的事情了。
    tomoyo2010-08-03 03:25 回复
    • @tomoyo, encoder 是解码器?那请问 decoder 是神马?
      temp2010-08-03 22:29 回复
    • @tomoyo, encoder是编码器,解码器应为decoder
      LBdL2010-08-04 00:00 回复
  19. MPC,WMP,Winamp,Quicktime,Mplayer,KMplayer,那满地番茄酱的是啥播放器实在是不知
    crossline2010-08-03 04:30 回复
    • @crossline, 我也是,那个东东实在看不出,应该没用故
      流年2010-08-03 11:11 回复
    • @crossline, 都知道WMP啊,晕,我对WMP的图标还停留在老的那个,原来是WMP。。。
      kpt2010-08-03 11:12 回复
  20. 表示文盲的很 囧rz
    havoc2010-08-03 07:24 回复
1 2 3