大家好,
请问DM368能否进行1024*768分辨率的视频编解码?如果可以的话帧率可以支持到多少,要在dvsdk开发包下好不好实现,需要修改哪些地方,多谢!!!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好,
请问DM368能否进行1024*768分辨率的视频编解码?如果可以的话帧率可以支持到多少,要在dvsdk开发包下好不好实现,需要修改哪些地方,多谢!!!
你好;
在demo中的video.c 中需要设置编码动态参数中有一组编码输入数据的分辨率,需要进行设置,编码创建的时候也需要设置编码分辨率的;
下面几个相关地方需要设置:
static int videoEncodeDynamicParams(VIDENC_Handle hEncode,
int width, int height, int bitrate)
{
VIDENC_DynamicParams dynamicParams;
VIDENC_Status encStatus;
XDAS_Int32 status;
//VIDENC_Handle hEncode;
dynamicParams.size = sizeof(VIDENC_DynamicParams);
dynamicParams.inputHeight = height;
dynamicParams.inputWidth = width;
dynamicParams.targetBitRate = bitrate < 0 ? 0 : bitrate;
dynamicParams.intraFrameInterval = 300;
dynamicParams.generateHeader = XDM_ENCODE_AU;
dynamicParams.captureWidth = 0;
dynamicParams.forceIFrame = 1;
if (gblGetYFactor() == NTSCSTD) {
dynamicParams.targetFrameRate = 30000;
dynamicParams.refFrameRate = 30000;
/******************************************************************************
* videoEncodeAlgCreate
******************************************************************************/
static int videoEncodeAlgCreate(Engine_Handle hEngine,
VIDENC_Handle *hEncodePtr,
VideoEncoder videoEncoder,
int width, int height, int bitrate)
{
VIDENC_DynamicParams dynamicParams;
VIDENC_Status encStatus;
VIDENC_Params params;
XDAS_Int32 status;
char *algName;
VIDENC_Handle hEncode;
algName = videoEncodeAlgNames[videoEncoder];
params.size = sizeof(VIDENC_Params);
params.encodingPreset = XDM_DEFAULT;
params.rateControlPreset = bitrate < 0 ? IVIDEO_NONE : IVIDEO_LOW_DELAY;
params.maxHeight = D1_HEIGHT;
params.maxWidth = D1_WIDTH;
params.maxFrameRate = gblGetYFactor() == NTSCSTD ? 30000 : 25000;
params.maxBitRate = bitrate < 0 ? 0 : bitrate;
params.inputChromaFormat = XDM_YUV_422ILE;
params.dataEndianness = XDM_BYTE;
params.maxInterFrameInterval = 0;
params.inputContentType = IVIDEO_PROGRESSIVE;
在demo 运行中,你只需要指点采集编码参数-r就可以,如下;
如果是手动修改,还需要修改采集capture.c 中的采集参数
"Options:\n"
"-s | --speechfile Speech file to record to\n"
"-v | --videofile Video file to record to\n"
"-r | --resolution Video resolution ('width'x'height') [720x480]\n"
"-b | --bitrate Bit rate to encode video at [variable]\n"
"-d | --deinterlace Disable removal of interlacing artifacts from the\n"
" captured video frames before encoding [off]\n"
"-x | --svideo Use s-video instead of composite video input [off]\n"
"-l | --linein Use line in for encoding sound instead of mic [off]\n"
"-k | --keyboard Enable keyboard interface [off]\n"
"-t | --time Number of seconds to run the demo [infinite]\n"
"-i | --interface Launch the demo interface when exiting [off]\n"
"-h | --help Print this message\n\n"
"You must supply at least a video or a speech file or both\n"
"with appropriate extensions for the file formats.\n\n");