pmw-ex1摄影机

上传人:xh****66 文档编号:57173091 上传时间:2018-10-19 格式:DOC 页数:7 大小:47.50KB
返回 下载 相关 举报
pmw-ex1摄影机_第1页
第1页 / 共7页
pmw-ex1摄影机_第2页
第2页 / 共7页
pmw-ex1摄影机_第3页
第3页 / 共7页
pmw-ex1摄影机_第4页
第4页 / 共7页
pmw-ex1摄影机_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《pmw-ex1摄影机》由会员分享,可在线阅读,更多相关《pmw-ex1摄影机(7页珍藏版)》请在金锄头文库上搜索。

1、X XD DC CA AM M 为 sony 在 2003 年所推出的无影带式专业录影系统。 2003 年 10 月开 始发售 SD 系统商品,2006 年 4 月开始发售 HD 系统。 XDCAM 的首两代 XDCAM 及 XDCAM HD,使用 Professional Disc 作储存 媒体,媒体和 Blu-ray Disc 相似及同样可储存 23 GB(PFD23,单面)或 50 GB(PFD50,双面)数据。第三代 XDCAM EX,使用固态 SxS 记忆卡。在 2008 年,JVC 宣布和 Sony 结盟支援 XDCAM EX 格式。 XDCAM 产品范围包括了摄影机和录影机,作为

2、突发取代传统录影机的格 式,容许 XDCAM 光碟可以应用在传统影带式的工作流程。其录影机亦可作为 随机存取磁盘机,以 IEEE 1394 及以太网等途径容易汇入录像到非线性编辑 系统。所以与过去使用影带的录影机系统比起来,进行非线性编辑更容易。 一一. .压压缩缩方方式式XDCAM 格式使用数种不同的压缩方式和储存格式。虽然DVCAM 及 IMX 独立型号有提供,很多标清 XDCAM 摄影机可简易切换 IMX 至 DVCAM 等格式。IMX (MPEG IMX)IMX 容许录影标清视讯,使用 MPEG-2 编码,位元率达 30、40 或 50 Mbit/s。 MPEG IMX 不使用暂时压缩

3、,这可适合作剪接格式。 50 Mbit/s 的品质 在视觉上可和 Digital Betacam 比较,及常作电视制作用途,主要是电子新 闻采集,因在实际上色彩分辨率( DigiBeta 的 10 位元对 IMX 的 8 位元) 和更低压缩比比 Digital Betcam 更好 DVCAM (DV25)DVCAM 使用标准 DV 编码,位元率高达 25 Mbit/s,相容于大部分 DV 剪 接系统。 XDCAM HD (XDCAM HD420, MPEG HD420)XDCAM HD 支援多种品质模式。 HQ 模式位元率可达 35 Mbit/s,使用可 变动位元率 (VBR) MPEG-2

4、长 GOP 式压缩。可选的 18 Mbit/s (VBR) 及 25 Mbit/s (CBR)模式可增加录影时间,相对地减少视讯品质。 XDCAM HD422 (MPEG HD422)第三代 XDCAM 使用 4:2:2 抽样的 MPEG-2 编码,比以往的格式有双倍色 度分辨率。为可容纳更细致的色度,最大位元率增加至50 Mbit/s。 2008 年后期,Sony 推出了 PDW-700 摄影机及 PDW-HD1500 半体积录影 机。同时,Sony 亦藉着免费固件升级,扩展 XDCAM HD422 支援至 PDW-U1 录影机。 XDCAM EXXDCAM EX索尼公司于 2007 年 1

5、1 月发布了 XDCAM EX 标准和 PMW-EX1 摄影机。该 标准使用同 XDCAM 相似的编码格式,只是存储介质换成了SxS 内存卡。该 标准能够以 25Mbit/s 的固定码率存储标清格式( 1440x1080)或以 35 Mbit/s 的浮动码率存储高清格式( 1920x1080)的视频。相比于 XDCAM 标 准的 MXF 文件格式,已编码的视频存储为 MP4 格式。两个标准在封装文件 上规格的不同意味着在 XDCAM EX 格式发布之初,既存编辑软件对于XDCAM HD 的编解码器无法处理 XDCAM EX 的编码。使用 SxS 内存卡时,由于文件系 统为 FAT32 格式,单

6、条长视频编码后会被分割成一系列不超过4GB(更确 切的说,3.49GB)的文件(折合约 13 分钟的高清或约 19 分钟的标清素材) 。 PMW-EX1 摄影机搭载 3 块 1/2 英寸、分辨率超过两百万像素、代号 “Exmor”的 CMOS 传感器。该机型在全美广播工作者协会( NAB)2007 年 展会上首次展出。该机在使用 SxS 固态存储内存卡时,使用 4:2:0 MPEG-2 Long-GOP 编码,但是其内部色度抽样实为 4:2:2,并且可以在 HD-SDI 接口 上实现 4:2:2 抽样的输出。 XDCAM EX1 被索尼定位为 CineAlta 系列(索尼 的高清电影摄像机系列

7、)产品的一款设备,它提供丰富的帧数模式,可以实 现从 60 帧/秒(在 1080p 模式下 30 帧/秒)到间隔拍摄。 在 2008 年 4 月,索尼在 XDCAM EX 产品线推出了一款新的可更换镜头 的摄影机,PMW-EX3。EX3 在内部设计上和 EX1 并无二致,在外观上改用了 肩托支撑设计(也许可以理解为向佳能XL 系列的外型致敬?),并增加了 可选外挂硬盘系统。相应的,售价相对于EX1 大幅度提升。视频流中的视频流中的DTSPTS 到底是什么到底是什么? DTS(解码时间戳)和 PTS(显示时间戳)分别是解码器进行解码和显示帧时相对于 SCR(系统参考)的时间戳。SCR 可以理解为

8、解码器应该开始从磁盘读取数据时的时间。mpeg 文件中的每一个包都有一个 SCR 时间戳并且这个时间戳就是读取这个数据包时的系统时间。通常情况下,解码器会在它开始读取 mpeg 流时启动系统时钟(系统时钟的初始值是第一个数据包的 SCR 值,通常为 0 但也可以不从 0 开始)。DTS 时间戳决定了解码器在 SCR 时间等于 DTS 时间时进行解码,PTS 时间戳也是类似的。通常,DTS/PTS 时间戳指示的是晚于音视频包中的 SCR 的一个时 间。例如,如果一个视频数据包的 SCR 是100ms(意味着此包是播放 100ms 以后从磁盘中读取的),那么 DTS/PTS 值就差不多是 200

9、/280ms,表明当 SCR 到 200ms 时这个视频数据应该被解码并在 80ms 以后被显示出来(视频数据在一个 buffer 中一直保存到开始解码)下 溢通常发生在设置的视频数据流相关 mux 率太高。如果 mux 率是 1000000bits/sec(意味着解码器要以 1000000bits/sec 的速率 读取文件),可是视频速率是 2000000bits/sec(意味着需要以 2000000bits/sec 的速率显示视频数据),从磁盘中读取视频数据时 速度不够快以至于 1 秒钟内不能够读取足够的视频数据。这种情况下 DTS/PTS 时间戳就会指示视频在从硬盘中读出来之前进行解码或

10、显示(DTS/PTS 时间戳就要比包含它们的数据包中的 SCR 时间要早了)。如今依靠解码器,这基本已经不是什么问题了(尽管 MPEG 文件因为应该没有下溢而并不完全符合MPEG 标准)。一些解码器(很多著名的基于 PC 的播放器)尽可能快的读取文件以便显示视频,可以的话直接忽略 SCR。注意在你提供的列表中,平均的视频流速率为3Mbps(3000000bits/sec)但是它的峰值达到了14Mbps(相当大,DVD 限制在 9.8Mbps 内)。这意味着 mux 率需要调整足够大以处理 14Mbps 的部分,bbMPEG 计算出来的 mux 率有时候太低而导致下溢。你计划让视频流速率这么高么

11、?这已经超过了 DVD 的说明了,而且很可能在大多数独立播放其中都不能播放。如果你不是这么计划,我会从 1 增加 mquant 的值并且在视频设置中将最大码流设置为 9Mbps 以保持一个小一点的码流。如果你确实想让视频码率那么高,你需要增大 mux 率。从提供的列表可以得出 bbMPEG 使用14706800bits/sec 或者 1838350bytes /sec 的 mux 率(总数据速率为:1838350bytes/sec(14706800bits/sec)行)。你在强制 mux 率字段设置的值应该是以 bytes/sec 为单位并被 50 整除。所以我会从 36767(1838350

12、/50)开始,一直增加直到不会再出现下溢错误为止音视频同步原理音视频同步原理ffmpeg ffmpeg 对视频文件进行解码的大致流程1. 注册所有容器格式和 CODEC: av_register_all()2. 打开文件: av_open_input_file()3. 从文件中提取流信息: av_find_stream_info()4. 穷举所有的流,查找其中种类为 CODEC_TYPE_VIDEO5. 查找对应的解码器: avcodec_find_decoder()6. 打开编解码器: avcodec_open()7. 为解码帧分配内存: avcodec_alloc_frame()8. 不停

13、地从码流中提取中帧数据: av_read_frame()9. 判断帧的类型,对于视频帧调用: avcodec_decode_video()10. 解码完后,释放解码器: avcodec_close()11. 关闭输入文件:av_close_input_file()output_example.c 中 AV 同步的代码如下(我的代码有些修改),这个实现相当简单,不过挺说明问题。阅读前希望大家先了解一下时间戳的概念。/* compute current audio and video time */if (pOutputVars-pOutAudio_st)/存在音频流pOutputVars-aud

14、io_pts = (double)pOutputVars-pOutAudio_st-pts.val* pOutputVars-pOutAudio_st-time_base.num / pOutputVars- pOutAudio_st-time_base.den; /(pts 是时间戳结构)输出音频的时间戳, 转换为基准时间elsepOutputVars-audio_pts = 0.0;if (pOutputVars-pOutVideo_st)pOutputVars-video_pts = (double)pOutputVars-pOutVideo_st-pts.val * pOutputVa

15、rs-pOutVideo_st-time_base.num / pOutputVars- pOutVideo_st-time_base.den;/输出视频时间戳elsepOutputVars-video_pts = 0.0;if (!pOutputVars-pOutAudio_st /* write interleaved audio and video frames */if (!pOutputVars-pOutVideo_st | (pOutputVars-pOutVideo_st /没有视频流,或者音频流时间没赶上视频流(通过比较时间戳), 则输出(编码输出)音频祯数据 else wri

16、te_video_frame(pOutputVars-pOutFormatCtx, pOutputVars-pOutVideo_st, pInputVedioFrame);/否则输出视频祯数据输出数据的时间戳怎么得到的, 以音频为例:pkt.size= avcodec_encode_audio(c, audio_outbuf, audio_outbuf_size, pInputAudioBuf);/源数据应该包含时间戳, pInputAudio 是源文件解码后的音频数据pkt.pts= av_rescale_q(c-coded_frame-pts, c-time_base, st-time_base);/编码后的祯也含有源文件的时间戳,这个函数应该是转换同时间基准,没研究过pkt.flags |= PKT_FLAG_KEY;pkt.stream_index= st-index;pkt.data= audio_outbuf;.应该就是这么个过程了,然后用 av_write_frame(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号