Symbian 视频录制总结

本文总结了Symbian平台上的视频录制,使用CCamera和CVideoRecorderUtility进行视频采集,并探讨了YUV格式转换。针对YUV420的不同布局进行了介绍,同时提到MDF DevVideoRecord API在视频解码和预处理中的应用。虽然可以将RGB转换为YUV420格式,但实时传输仍面临挑战。
摘要由CSDN通过智能技术生成

 1 尝试了下CCamera ,打开之后,调用PrepareVideoCaptureL,然后StartVideoCapture。

得到的数据时yuv格式的

/** 4:2:0 format, 8 bits per sample, Y00Y01Y10Y11UV. */
  EFormatYUV420Interleaved = 0x0400,
  /** 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0...V0... */
  EFormatYUV420Planar   = 0x0800,
  /** 4:2:2 format, 8 bits per sample, UY0VY1. */
  EFormatYUV422    = 0x1000,
  /** 4:2:2 format, 8 bits per sample, Y1VY0U. */
  EFormatYUV422Reversed  = 0x2000,
  /** 4:4:4 format, 8 bits per sample, Y00U00V00 Y01U01V01... */
  EFormatYUV444    = 0x4000,
  /** 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0V0... */
  EFormatYUV420SemiPlanar  = 0x8000,

用YUV Player 是可以播放的,但是是没有音频的。文件也特别的大。

但是可以采集图像。

 

参考

RGB与YUV的转换

从S60第三版FP2开始,MDF DevVideoRecord API作为SDK API Plug-in的一部分出现了。DevVideoRecord允许对视频解码和预处理进行直接和底层的访问。


传输到解码器的必须是特殊的颜色格式,YUV422或更常见的YUV420(planar),YUV420每个像素有8位luminance (Y),和减少数量的chrominance(U,V)采样,每个都覆盖一个2x2像素区域。在plane模式下,Y,U和V值在内存中被分组为[Y0Y1Y2Y3Y4Y5Y6Y7....U0U1....V0V1],这样增强了图片的压缩率.

 

下列代码演示了如何将一帧原始RGB(8 bits/channel)转化为YUV420格式。

// Definitions that help access each colour component in source bitmap
#define sR ((TInt32)(s[2]))
#define sG ((TInt32)(s[1]))
#define sB ((TInt32)(s[0]))
 
#define KImageWidth 176 // QCIF resolution
#define KImageHeigth 144
 
const TInt KImageNumPixels = KImageWidth * KImageHeigth;
// Lock source bitmap (CFbsBitmap)
iSourceBitmap->LockHeap(EFalse);
TUint8* s = (TUint8*)iSourceBitmap->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值