Yaosansi's Blog 记录与分享

几个视频基本名词

 原文:http://bbs.52wy.com/forum.php?mod=viewthread&tid=24482

24p就是一个标准的动画,其大部分都是5帧烂2帧,也就是每5帧有2帧存在交错。出现这种现象是因为为了把24帧的动画在电视上放必须做成30帧,这样就要通过添加交错来补到30帧。但是在电脑上播放不需要这么操作,因为电脑不会反交错,所以我们要在电脑上完美观看就要做ivtc(当然,有些播放器可以,比如powerdvd之类专门播放dvd的软件),其过程就是先匹配2帧交错帧,然后砍掉多余的1帧,这样最后的成品帧率就是23.976。如果这种类型的片子只做反交错,而不做砍帧处理,也就是保持在30帧,那可能就会造成卡顿,或者片子有明显幻影。
7 N5 M% a* M8 t: q# c0 U
. V6 e0 i4 i4 Y" a4 o1 u# X现在很多蓝光已经没有做交错处理了,都是直接23.976帧。3 e7 [/ X& i8 c% Q3 W% y1 Q
8 o$ q9 h% c4 O4 U3 a
30i就是帧帧都有交错,这类片子只能做反交错处理,不用砍帧,出来的帧率一般都是29.970。这类片子如果进行砍帧处理,就会因为画面缺失而造成卡顿现象,横向、竖向移动时尤其明显。
, L0 _' m+ r& \6 L0 |* ]
, i7 F( _3 ]6 h! W) O( Y30p就比较好了,基本上不用做任何处理,因为帧帧都是无交错的帧。所以保持原状即可。这类片段的帧率都是29.970。6 M. _: w$ L+ z7 {: {& W
7 @. h/ `5 L. c
cfr,即固定帧率。% [% s6 {- j7 K+ Y# A( j
# m( X+ _( A( q
vfr,动态帧率,为了将不同帧率的片段合并的一种手段。+ N$ q! C& o$ b) Q5 \1 @1 c

  F% o& o# _4 F8 |' Sivtc:就是反交错+砍帧的一个处理流程。
5 `5 C+ l) _6 M, d! Z1 {
. I9 @. E# q2 R! itivtc:一种可以智能ivtc的滤镜。
' b% d8 v/ E4 C- U) x
" T( t9 v. [( C9 A' k6 i5 ?0 y; M2 J$ Zcfr不用多解释,全片23.976或者全片29.970都叫cfr,只要从头到尾帧率一致。
, S) e* ?$ V3 R" h9 ^+ z- C8 f
2 Y6 Y! d9 x/ _而vfr则是将一部片子中存在不同类型的片段拼合在一起的一种手段,也就是说假如片子的动画部分是第一种所说的24p,op、ed是30p,那这两段处理完的结果就是动画部分是23.976,op、ed部分是29.970。因为不同的帧率无法合并到一起,所以为了将这两段不同帧率的片段合并,我们就要统一其帧率,然后再合并,但是帧率改变必然长度会改变,所以我们要通过timecode对改变过的帧进行还原,恢复到原有的片长,这样的一种手段就叫vfr。所以全片的帧率可能是23.976或者29.970,但实际是由不同的帧率组成的。
+ E$ ]" z% l4 s: e/ v5 m
& d9 Q2 _3 [" p& e3 n你所说的TFM+tdecimate就是tivtc滤镜的功效,tfm负责反交错,tdecimate负责砍帧。tivtc可以自动判断片子的类型,然后分别处理,最后统一帧率合并并输入一个timecode用来原用帧率。 
  T2 t8 ]: s2 E, s1 n5 @2 O2 t) l) F9 v% N% q4 ?  h
PS:只有在做dvdrip或者处理ts时才用到如上的操作。如果你直接处理mp4或者avi等视频文件,原来什么帧率你就丢什么帧率压,有timecode压完恢复timecode,没timecode就不管。

[转]Nginx RTMP 功能研究

原文: http://blog.csdn.net/cccallen/article/details/8440191

 

Nginx-RTMP功能调研

1. RTMP协议介绍

2.RTMP server

2.1当前的流媒体server

2.2Wowza功能.

3.Nginx-based RTMP server

3.1  Nginx rtmp 功能点

3.2编译nginx rtmp模块

3.3配置以及功能介绍

3.4用nginx-rtmp-module搭建直播环境

3.5Nginx rtmp对于HLS支持

Tags: nginx RTMP

发布: yaosansi 分类: Video 评论: 0 浏览: 21

HTTP Streaming with segmenter在Linux和Windows下的多种实现方案

 原文:http://www.yaosansi.com/post/1495.html

HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

windows 2012中ie10安装flash

原文:

http://bbs.pcbeta.com/viewthread-1165648-1-4.html


问题的原因大概是这样的,Windows8中的IE10自带了flash,类似于chrome的作法。
所以flash针对windows的安装工具就多做了一件事,就是检测IE的版本,如果发现是IE10的话,就会认为它已经有flash了。
可是 server 2012 中的 ie10 并不同于 win8 中的 ie10, 并未集成 flash.
如果用IE在adobe的官方网站上下载flash插件,下载下来的基本都是那个安装工具,并不是flash插件本身的程序,所以用server 2012 中的IE10来安装flash,基本就不可行了。

解决办法,其实也很简单,就是用其它浏览器(不能是使用IE内核的浏览器,比如可以用chrome或者firefox)去adobe官方网站下载windows版本的flash插件,再手动安装即可。
http://get.adobe.com/flashplayer/otherversions/
先选择操作系统,选windows,第二步选浏览器,选择ie即可,下载下来的应该就可以用了。我的系统就是这么搞定的。
用这个方法下载下来的文件名是这样的 install_flash_player_ax.exe (在linux中用chrome下载下来的,在windows中下载下来的应该一样,我现在在用linux,所以就不方便测试了)

Windows Server 2012 MSDN 正式版下载(全)


======================= Windows Server 2012 MSDN 正式版下载 =====================


-
Windows Server 2012 64位简体中文标准版+数据中心版-VL

cn_windows_server_2012_vl_x64_dvd_917962.iso (3.56 GB)

其他下载地址入口

文件名: cn_windows_server_2012_vl_x64_dvd_917962.iso
SHA1:C02CE28DCBE0CC745EA1035EB051A0EF02C0164F

-Windows Server 2012 64位简体中文标准版+数据中心版

cn_windows_server_2012_x64_dvd_915588.iso (3.56 GB)

其他下载地址:入口 (by zerozzc

文件名: cn_windows_server_2012_x64_dvd_915588.iso
SHA1:BA658A9875DA5F02869B6B205B3D8EE26160FE0F

-Microsoft Hyper-V Server 2012 64位简体中文版

cn_microsoft_hyper-v_server_2012_x64_dvd_915786.iso (1.78 GB)

文件名: cn_microsoft_hyper-v_server_2012_x64_dvd_915786.iso
SHA1:43D42D1C1D9C782D64815D9814C3653C66E733F7

-Windows Server 2012 64位英文标准版+数据中心版-VL

en_windows_server_2012_vl_x64_dvd_917758.iso (3.44 GB)

文件名: en_windows_server_2012_vl_x64_dvd_917758.iso
SHA1:063BC26ED45C50D3745CCAD52DD7B3F3CE13F36D


-Windows Server 2012 64位英文标准版+数据中心版

en_windows_server_2012_x64_dvd_915478.iso (3.44 GB)

其他下载地址入口

文件名: en_windows_server_2012_x64_dvd_915478.iso
SHA1:D09E752B1EE480BC7E93DFA7D5C3A9B8AAC477BA

-Microsoft Hyper-V Server 2012 64位英文版

en_microsoft_hyper-v_server_2012_x64_dvd_915600.iso (1.66 GB)

文件名: en_microsoft_hyper-v_server_2012_x64_dvd_915600.iso
SHA1:A29C8155B8EE80FBB1BF6CE1C627C633BC639558

========================================================

-Windows Server 2012 64位多国语言包

mu_windows_server_2012_language_pack_x64_dvd_917551.iso (1.68 GB)

其他下载地址
入口

文件名: mu_windows_server_2012_language_pack_x64_dvd_917551.iso
SHA1:7649170854669DF9CB47907EC819FA541807E927

多国语言包包含语种: English, Japanese, Korean, Arabic, Bulgarian, Czech, Danish, German, Greek, Spanish, Estonian, Finnish, French, Hebrew, Croatian, Hungarian, Italian, Lithuanian, Latvian, Dutch, Norwegian, Polish, Portuguese-Brazil, Romanian, Russian, Slovak, Slovenian, Serbian, Swedish, Thai, Turkish, Ukrainian, Multi-Language, Chinese - Hong Kong SAR, Chinese - Simplified, Portuguese-Portugal

Tags: win2012

发布: yaosansi 分类: Others 评论: 0 浏览: 22

转载:Extract I-frames from MPEG2-TS

 原文:http://forum.digital-digest.com/f4/help-extract-i-frames-mpeg2-ts-89736.html

Help : Extract I-frames from MPEG2-TS

Hi,

I want to know when an I-frame starts and ends when I analyse an mpeg2-ts stream. I do not have access to the ISO :13818-1.

Can anyone help me please. What fields of the MPEG2-TS streams must I check to know the start and the end of an Inter-Frame ?

Thank you.

You need to look at the picture header start code (4 bytes = 0x0100). Skip the next byte and then byte 5 tells you what you want to know. Extract bits 3, 4 and 5 (remember that a byte is bits 0-7).

Values of bits 3, 4 and 5

Tags: ts

发布: yaosansi 分类: Video 评论: 0 浏览: 20

转载:如何区分H.264视频流的I frame 和 P frame?

 

怎么区分H.264视频流的I frame 和 P frame?

 
我是新手,前些天自己看那H.264规范文档及其他资料寻找答案时,
还有几个概念的关系还没能理解清楚,望达人指点一二:
NAL、Slice与frame意思及相互关系

NAL nal_unit_type中的1(非IDR图像的编码条带)、2(编码条带数据分割块A)、3(编码条带数据分割块B)、4(编码条带数据分割块C)、5(IDR图像的编码条带)种类型


Slice种的三种编码模式:I_slice、P_slice、B_slice

还有frame的3种类型:I frame、P frame、 B frame之间有什么映射关系么?


最后,NAL nal_unit_type中的6(SEI)、7(SPS)、8(PPS)属于什么帧呢?

---------------------------------------------------------------------------
1 frame的数据可以分为多个slice.
每个slice中的数据,在帧内预测只用到自己slice的数据, 与其他slice 数据没有依赖关系。 
NAL 是用来将编码的数据进行大包的。 比如,每一个slice 数据可以放在NAL 包中。
I frame 是自己独立编码,不依赖于其他frame 数据。
P frame 依赖 I frame 数据。 
B frame 依赖 I frame, P frame 或其他 B frame 数据。

----------------------------------------------------------------------------
那NAL nal_unit_type中的哪几种类型是I frame,现在只能确定nal_unit_type==5(IDR图像的编码条带)是I frame

sps、pps、SEI算不算I frame呢? 还有 属于编码条带分割的DPA、DPB、DPC呢?

能给个从视频流中提取I frame 和P frame的方法么?


-----------------------------------------------------------------------------------------------

一个frame是可以分割成多个Slice来编码的,而一个Slice编码之后被打包进一个NAL单元,不过NAL单元除了容纳Slice编码的码流外,还可以容纳其他数据,比如序列参数集SPS

------------------------------------------------------------------------------------------------

Tags: h.264

发布: yaosansi 分类: Video 评论: 0 浏览: 27

中国天气网天气接口

 

1. XML接口
这个是全国天气的根节点,列出所有的省,其中的pyName字段是各个省XML的文件名,比如北京的是beijing,那就意味着北京的XML地址为
一个省的天气,其中列出该省各个市的数据,北京就列出各个区。
tmp1是最低温低,tmp2是最高温度,url非常重要,我们一会儿再说。state1和state2是神马转神马,每个数代表一个天气现象。天气现象非常多,我本想全部分析出来,后来直接放弃了这个想法。因为我看到了一个城市的天气现象的编码是26...我现在知道的有0.晴 1.多云 2.阴 6.雨夹雪 7.小雨 8.中雨 13.阵雪 14.小雪
其中后来发现知道这个没用,这个数字的主要作用是检索图片的!!!
2. 图片接口
这个图就是天气现象0(晴)的图片,其他天气现象的图片依此类推。c打头的图片是20*20像素的,b打头的是50*46像素的,d打头的是反白的图标,29*20像素,n打头的是夜间反白图标,29*20像素,注意这里的文件名是两位数字!
也许还有更多的图标,等待大家发掘啦~
3. JSON接口
真没想到~居然有JSON接口~JSON在iPhone上分析起来要比XML简单很多
这个是北京的JSON数据,那个HTML的名字是根据上文XML中的url得到的。这个JSON中包含了实时数据、7天天气预报、气象指数等丰富的数据

 

Tags: 天气

发布: yaosansi 分类: Others 评论: 1 浏览: 527