找回密码
 FreeOZ用户注册
查看: 3817|回复: 7
打印 上一主题 下一主题

[其他] 记事本

[复制链接]
跳转到指定楼层
1#
发表于 16-6-2011 10:43:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
◆ 数字电视码流的监测标准规范

◆ 数字电视码流的监测标准规范

DVB系统测量标准之一TR 101-290定义的三个优先级,是码流监测的一项主要内容。通过这三个优先级的监测,可以检验被监测的码流是否符合MPEG-2和DVB标准。这三个优先级都包含许多不同的参数。

TR 101-290的第一优先级

同步错误(TS Sync Loss)
  同步错误是衡量传输流质量的最重要的指标。传输流失去同步,表明传输过程中有一部分数据丢失,将直接影响解码后画面的质量。严重的同步丢失现象则表明传输中断,同步字节出现错误。
同步字节错误(Sync Byte Error)
  同步字节错误和同步错误的区别在于传输数据包长为188字节或204字节,但同步字头的标准值为0×47,当出现同步字节错误时,同步字头的值为其他数值,表明在传输过程中部分数据出现错误,可能导致接收时出现马赛克,严重时导致解码器解不出信号。
包识别丢失(PID Mssing)
  检测数据流中各套电视节目的图像/声音数据是否正确。PID丢失,将导致该套节目无法正确解码。
节目相关表(PAT)
PAT在DVB标准中用于指示当前节目及其在数据流中的位置。PAT丢失,将导致解码器无法搜索到相应的节目包,使得接收端收不到图像。如果PAT超时,则解码器工作时间延长。
节目对照表(PMT)
PMT在DVB标准中用于指示该套节目视/音频数据在传输流中的位置。某一套节目的PMT丢失,将导致解码器找不到该套节目视/音频数据,使得接收端收不到图像或声音。PMT传输超时,将影响解码器切换节目时间。
连续计数错误(Cont Count Error)
  对于每一套节目的视/音频数据包而言,连续计数错误是一个很重要的指标。传输流包头连续计数不正确,表明当前传输流有丢包、错包、包重叠等现象,将导致解码器不能正确解码,图像出现马赛克等现象。



TR 101-290的第二优先级

数据传输错误(Transport Error)
TS包数据在复用/传输过程中出现错误,包头标识位置被置为1,表明包已损坏,通过监测TS包的错误,可以监测码流是否连续及稳定。
循环冗余校验(CRC)
  节目专用信息(PSI)和服务信息(SI)出现错误,可以由CRC计算出来,以指明该包是否可用。PAT、PMT出现连续错误,将影响解码器对某一节目的正确解码。
节目参考时钟间隔错误(PCR Discont)
PCR用于恢复27MHz系统时钟,每40ms传输一个。PCR间隔错误,将导致接收端的时钟抖动或漂移,影响画面显示时间。
节目参考时钟抖动错误(PCR Jitter Error)
PCR抖动将影响接收端系统时钟的正确恢复,解码时会出现马赛克现象,严重时不能正常显示图像。
播出时间标记(PTS)
  在DVB标准中规定PTS每700ms传输一次,PTS传输超时将影响图像正确显示。

TR 101-290的第三优先级

网络信息表(NIT)
NIT标识错误或传输超时,会导致解码器无法正确显示网络状态信息。
业务描述表(SDT)
SDT标识错误或传输超时,会导致解码器无法正确显示信道节目的信息。
每路信息表(EIT)
EIT标识错误或传输超时,会导致解码器无法正确显示每套节目的相关服务信息。
此外,还有业务信息重复错误(SI Repletion Error)、缓冲器错误(Buffer Error)、运行状态表错误(RST Error)、TDT错误(TDT Error)、空缓冲器错误(Empty Buffer Error)和数据延迟错误(Data Delay Error)。
  使用比较先进的监测设备,甚至可以检测NIT、SDT、EIT中具体错误的根源,例如NIT_Actual_Error、NIT_Other_ Error、SDT_Actual_Error、SDT_Other_ Error、EIT_Actual_Error、EIT_Other_Error、EIT_PF_Error等。相对而言,第三优先级相关数据的错误对接收端的解码及其图像质量产生的影响较小,因而一些监测设备对第三优先级中一些参数不做检测,或在监测设置上可以取消对其检测,例如缓冲器错误、空缓冲器错误和数据延迟错误。
   由此可见,在数字电视系统中选择上述参数作为监测对象是十分必要的。其中第一、第二优先级中的参数直接关系到TS码流能否被正确解码,以及解码后节目图像和伴音的效果。这三个优先级是数字电视质量的客观技术指标,但它们不能直接用于图像质量的主观评价,这是数字电视监测与模拟电视监测的重要区别之一

数字电视码流的监测点

目前,尽管数字电视的节目平台、传输平台和服务平台在播出前端的系统构架有所不同,但TS流主要还是来自于卫星、地面、有线及局域网传输,经编码器、视频服务器和其它一些数据发生设备(比如EPG服务器)等,由播出前端的复用器对这些TS流进行组合、过滤,甚至再复用至155M群,然后对下行广播与传输。为了掌握TS流的工作状态,保证安全播出,在这些环节上都应该设置监测点。

数字电视码流监测的内容

 除了监测TR 101-290定义的三个优先级的内容外,数字电视码流监测还应该包括TS流的基本结构信息、带宽码率、PSI/SI信息、PCR分析和语法分析等内容。

TR 101-290的三个优先级

TR 101-290三个优先级的监测包括三个优先级下的所有参数。当然,也可以根据需要监测一个或几个参数,能够实时检测哪一个优先级下哪一个参数出现错误和错误的个数。特别是对于连续计数错误、传输字节错误、PCR抖动错误、PCR传输间隔错误,还应该通过监测系统获取其出现错误的PID号和包序号,以便进一步分析数字信号的错误信息与接收图像质量的对应关系。

TS流的基本结构信息

TS流的基本结构信息监测包括TS流的信息构成、TS包的包长、PSI/SI表的传输间隔、传输流的ID、PID的数量、网络ID和网络名称。

TS流的信息构成是指整个TS流所包含的节目数量、每个节目的节目号和节目名称、节目是否被加密等信息。其实,这些信息都是从PSI/SI中提取的简单信息。节目数量可以靠分析PMT表的数量而获得;节目号就是Service_ ID的值,并且应该和复用器、EPG上的配置相对应;节目名称来自SDT表下对应子表Service_Descriptor下的字段Service_ Name;而节目是否被加密可以通过CAT表和EMM、ECM确定。因为PSI/SI中包含了大量的信息,建议单独分出来,在需要的时候再进行细致的分析。

  对于一个有众多节目来源的播出前端来说,能够掌握传输流的ID、PID的数量、网络ID和网络名称是非常重要的。

带宽码率监测

  带宽码率监测包括整个TS流总码率的最小值、最大值、有效值、当前值、TS流中每路节目的码率和所占带宽的比率、PSI/SI中每个表的码率、空包率和其它数据的码率。

    监测TS流的总码率,可以防止TS流瞬间超过带宽而影响传输和接收,同时也为一个通道的节目规划设置提供了重要的参考。

  监测TS流中每路节目的码率,可以掌握每路节目的播出状况。尤其是在统计复用的情况下,当不同优先级别的节目因瞬间码率过高而使预先设置的总带宽溢出时,可能会为了保证优先级高的节目的效果而强行对优先级低的节目降码率,结果影响优先级低的节目在接收端的效果。这些都可以通过监测TS流的节目码率而及时掌握和处理。

PSI/SI分析

  数字电视业务信息由PSI和SI两部分构成。PSI是MPEG-2规定的,它由PAT、PMT、CAT和NIT 4个表构成,其中PAT、PMT表最为重要。SI是DVB标准规定的,它由BAT、SDT、EIT、RST、TDT、TOT、ST、SIT和DIT 9个表构成,其中BAT、SDT、EIT和TDT是强制性的。PSI/SI由“表”和“描述符”构成。表是PSI/SI的基本结构,针对特定用途,PSI/SI中规定了一系列表来实现它;表由变量和描述符组成。描述符提供了更多的描述功能。

节目关联表(PAT)——针对复用的每一路业务,提供相应的PMT的位置(TS包的包标识符的值)和NIT的位置。

节目映射表(PMT)——标识并指示组成每路业务的流的位置,及每路业务的节目时钟参考(PCR)字段的位置。

条件接收表(CAT)——提供复用流中条件接收系统的有关信息。这些信息属于专用数据,并依赖于条件接收系统。当有EMM时,它还包括EMM流的位置。

网络信息表(NIT)——提供有关物理网络的信息。

业务群关联表(BAT)——提供业务群相关的信息,包括业务群的名称及每个业务群中的业务列表。
业务描述表(SDT)——包含描述系统中业务的数据,例如业务名称、业务提供者等。

    事件信息表(EIT)——包含与事件或节目相关的数据,例如事件名称、起始时间、持续时间等。不同的描述符用于不同类型的事件信息的传输,例如不同的业务类型。

时间和日期表(TDT)——给出与当前时间和日期相关的信息。由于这些信息更新频繁,所以需要使用一个单独的表。

  分析PSI/SI,可以了解被监测的TS流的复用结构、每个PMT表的PID、每路节目的PCR的PID、视/音频的PID、SDT和EIT的详细信息。如果被监测的是加密的TS流,还可以通过分析PSI/SI获取相关加密信息。

PCR分析

  一般的监测系统在TR 101-290第二优先级中,只是给出PCR的错误个数和出错PCR的PID,并把PCR的具体分析作为一个单独的模块。PCR分析包括PCR的精度分析和PCR的间隔分析。

PCR的精度

PCR的错误范围是由允许偏离正确PCR值的最大值确定的,称为PCR精度。通常PCR的精度设置在?00ns到?00ns。

PCR的间隔

   指两个连续的PCR之间最大的间隔时间,DVB的默认值是40ms,MEPG-2的默认值是100ms。PCR的精度和间隔的设置会直接影响TR 101-290第二优先级中对PCR的监测,因此必须严格遵循TR 101-290的标准,不要随意修改这两项设置。

http://www.360doc.com/content/09/0216/20/56926_2563445.shtml
http://www.docin.com/p-20417945.html
http://www.eefocus.com/article/10-01/2203510030149ONs4_1.html

[ 本帖最后由 MillerYang 于 16-6-2011 11:05 编辑 ]

评分

参与人数 1威望 +20 收起 理由
泡沫 + 20 你太有才了!

查看全部评分

回复  

使用道具 举报

2#
发表于 16-6-2011 11:21:29 | 只看该作者
电子工程?

评分

参与人数 1威望 +20 收起 理由
MillerYang + 20 数字电视

查看全部评分

回复  

使用道具 举报

3#
发表于 20-6-2011 13:30:41 | 只看该作者
这个规范一直没更新么?
回复  

使用道具 举报

4#
发表于 20-6-2011 13:35:56 | 只看该作者
看来此监测模块主要用于头端,传输网络和STB应该不需要它。
回复  

使用道具 举报

5#
 楼主| 发表于 10-8-2011 15:37:12 | 只看该作者

Ubuntu ffmpeg

http://ubuntuforums.org/showthread.php?t=786095
https://wiki.ubuntu.com/ffmpeg

1.
Uninstall x264, libx264-dev, and ffmpeg if they are already installed. Open a terminal and run the following (you can usually paste into a terminal with shift+ctrl+v). Copy and paste the whole code box for each step.
      
  1. sudo apt-get remove ffmpeg x264 libx264-dev
复制代码

2. Get all of the packages you will need to install FFmpeg and x264 (you may need to enable the Universe and Multiverse repositories):
     
  1. sudo apt-get updatesudo apt-get install build-essential checkinstall git libfaac-dev libjack-jackd2-dev \  libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \  libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html \  yasm zlib1g-dev
复制代码


Install x264
3.  Get the current source files, compile, and install x264.
        Code:
        cdgit clone git://git.videolan.org/x264cd x264./configure --enable-staticmakesudo checkinstall --pkgname=x264 --pkgversion="3: $ (./version.sh | \    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \    --fstrans=no --default

Install libvpx (optional)
4. This is used to encode VP8 video. If you follow this step, add --enable-libvpx to the FFmpeg ./configure line in step 5.
      
  1. sudo apt-get remove libvpx-devcdgit clone git://review.webmproject.org/libvpxcd libvpx./configuremakesudo checkinstall --pkgname=libvpx --pkgversion="1: $ (date +%Y%m%d%H%M)-git" --backup=no \    --deldoc=yes --fstrans=no --default
复制代码


Install FFmpeg
5.  Get the most current source files, compile, and install FFmpeg.
        
      
  1. cdgit clone git://git.videolan.org/ffmpegcd ffmpeg
  2. ./configure --enable-gpl --enable-postproc --enable-swscale --enable-pthreads \
  3. --enable-x11grab --enable-libdc1394 --enable-libfaac --enable-libfaad \
  4. --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis \
  5. --enable-libx264 --enable-libxvid

  6. make
  7. sudo checkinstall --pkgname=ffmpeg --pkgversion="5: $ (date +%Y%m%d%H%M)-git" --backup=no \  --deldoc=yes --fstrans=no --default

  8. hash x264 ffmpeg ffplay ffprobe
复制代码


Install qt-faststart (optional)
6.  This is a useful tool if you're showing your H.264 MP4 videos on the web. It relocates some data in the video to allow playback to begin before the file is completely downloaded. Usage: qt-faststart input.mp4 output.mp4.
      
  1. cd ~/ffmpegmake tools/qt-faststartsudo checkinstall --pkgname=qt-faststart --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \    --deldoc=yes --fstrans=no --default install -D -m755 tools/qt-faststart \    /usr/local/bin/qt-faststart
复制代码


Adding lavf support to x264 (optional)
7.  This allows x264 to accept just about any input that FFmpeg can handle and is useful if you want to directly use x264.
     
  1. cd ~/x264make distclean./configure --enable-staticmakesudo checkinstall --pkgname=x264 --pkgversion="3: $(./version.sh | \    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \    --fstrans=no --default
复制代码

That's it for installation. You can keep the x264, libvpx, and ffmpeg directories in your home directory if you plan on updating later. See Updating FFmpeg and x264 below for more details.


Using FFmpeg and x264
The easiest method for high quality video encoding is by using the libx264 presets. See x264 --fullhelp for more info on these options.

One-pass CRF (Constant Rate Factor) using the slow preset.  One-pass CRF is good for general encoding and is what I use most often. Adjust -crf to change the quality.  Lower numbers mean higher quality and a larger output file size.  A sane range is 18 to 28.
        Code:
        ffmpeg -i input -acodec libfaac -aq 100 -vcodec libx264 -preset slow -crf 22 \    -threads 0 output.mp4
One-pass CRF (Constant Rate Factor) using the medium preset, animation tuning, baseline profile, and level 3.0:
        Code:
        ffmpeg -i input -acodec libfaac -aq 100 -vcodec libx264 -preset medium \    -tune animation -profile baseline -level 3.0 -crf 20 -threads 0 output.mp4
Two-Pass encode using the fast preset.  Two-pass encoding is usually used when you want a specific output file size.
        Code:
        ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -threads 0 \    -f mp4 -an -y /dev/null && ffmpeg -i input.avi -pass 2 -acodec libfaac -ab 128k \    -ac 2 -vcodec libx264 -preset fast -b 512k -threads 0 output.mp4


Updating FFmpeg and x264
Development of FFmpeg and x264 is active and an occasional update can give you new features and bug fixes.  First, remove some packages and then update the dependencies:
        Code:
        sudo apt-get remove ffmpeg x264 libx264-dev libvpx-devsudo apt-get updatesudo apt-get install build-essential git checkinstall yasm texi2html \  libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \  libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev \  libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
Update x264:
        Code:
        cd ~/x264make distcleangit pull
Now compile x264 as shown earlier in the guide starting with the x264 ./configure line. Update libvpx:
        Code:
        cd ~/libvpxmake cleangit pull
Now compile libvpx as shown earlier in the guide starting with the libvpx ./configure line. Update FFmpeg:
        Code:
        cd ~/ffmpegmake distcleangit pull
Finish the installation starting with the FFmpeg ./configure line.



Reverting Changes Made by This Guide
To remove FFmpeg/x264 and other packages added for this guide:
        Code:
        sudo apt-get autoremove x264 ffmpeg qt-faststart build-essential git checkinstall \  yasm texi2html libfaac-dev libjack-jackd2-dev libmp3lame-dev libsdl1.2-dev \  libtheora-dev libva-dev libvdpau-dev libvorbis-dev libvpx libx11-dev libxfixes-dev \  libxvidcore-dev zlib1g-dev

Issues

Check here if you get one of these error messages: "ffplay: symbol lookup error: /usr/local/lib/libavcodec.so.52: undefined symbol: av_gcd" or "ffmpeg: error while loading shared libraries: libavformat.so.52: cannot open shared object file: No such file or directory".


If you get any strange errors, especially if you compile with --enable-shared, run
sudo ldconfig
after installing.

评分

参与人数 1威望 +20 收起 理由
泡沫 + 20 你太有才了!

查看全部评分

回复  

使用道具 举报

6#
 楼主| 发表于 2-9-2011 15:02:11 | 只看该作者

SmoothStreaming

http://alexzambelli.com/blog/smooth-streaming-faq/
http://smf.codeplex.com/

评分

参与人数 1威望 +20 收起 理由
泡沫 + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 20-9-2024 02:36 , Processed in 0.043789 second(s), 24 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表