mobile CCTV,mobile surveillance,police body worn cameras

标题: 请问cusdk如何获取视频流 [打印本页]

author: machong    time: 2018-5-23 11:26
标题: 请问cusdk如何获取视频流
如题,请问sdk是否可以获取视频流?  demo种播放视频,是直接调用的Browse函数,里面没有获取流的方法   还有afterDecode_TSP 或 afterDecode_GPS有什么区别
author: Mitarai    time: 2018-5-23 11:33
在打开会话传输成功后,BVCU_DialogParam 中的结构体有个 BVCU_Result (*afterDecode)(BVCU_HDialog hDialog, SAVCodec_Context* pCodec, SAV_Frame* pFrame); 回调,其中pFrame便是BVCU库解码后的码流,可通过该回调获取码流
author: machong    time: 2018-5-23 11:35
Mitarai post on2018-5-23 11:33
在打开会话传输成功后,BVCU_DialogParam 中的结构体有个 BVCU_Result (*afterDecode)(BVCU_HDialog hDialo ...

那afterDecode_TSP 或 afterDecode_GPS 什么区别啊?  解码视频是不是用 afterDecode_TSP
author: Mitarai    time: 2018-5-23 11:40
machong post on2018-5-23 11:35
那afterDecode_TSP 或 afterDecode_GPS 什么区别啊?  解码视频是不是用 afterDecode_TSP

afterDecode_TSP 是接收串口数据流的回调,afterDecode_GPS 是接收GPS数据流的回调
他们本质上都是afterDecode()回调的重写,只不过MFC demo 重写了接收TSP流和GPS流的afterDecode回调,没有写接收音视频流的afterDecode回调
author: machong    time: 2018-5-23 12:07
Mitarai post on2018-5-23 11:40
afterDecode_TSP 是接收串口数据流的回调,afterDecode_GPS 是接收GPS数据流的回调
他们本质上都是after ...

那接收音视频流是要自己去重写afterDecode()对吗?
author: admin    time: 2018-5-23 12:16
是的,参考模仿着写下即可。
author: machong    time: 2018-5-23 15:43
admin post on2018-5-23 12:16
是的,参考模仿着写下即可。

您好  请问SAV_Frame* pFrame->ppData[],其中ppData[0] ppData[1] ppData[2] ppData[3],分别保存的是什么数据?还有  对应的iDataSize[]是什么含义?
author: Mitarai    time: 2018-5-23 16:08
machong post on2018-5-23 15:43
您好  请问SAV_Frame* pFrame->ppData[],其中ppData[0] ppData[1] ppData[2] ppData[3],分别保存的是什 ...

ppData[0]指向音视频数据,其中保存的是ffmpeg AVFrame 中extended_data数据的第0个值,iDataSize[0]则是该帧数据长度。具体参考头文件SAVCommon.h中SAV_Frame结构体说明。
/**
        * video:pointer to the picture planes and the stride of each plane line.
        * audio:pointer to the audio data and length.Only pData[0]/iDataSize[0] is used
        * data:pointer to the data and length.Only pData[0]/iDataSize[0] is used
        * - encode:set by user. The memory is allocated/freed by user.
        * - decode:set by library. Video:The memory is allocated/freed by library. Audio:The memory is allocated/freed by user
        */
        SAV_TYPE_UINT8* ppData[SAV_IMG_COMPONENT];
        SAV_TYPE_INT32 iDataSize[SAV_IMG_COMPONENT];
author: machong    time: 2018-5-23 18:44
Mitarai post on2018-5-23 16:08
ppData[0]指向音视频数据,其中保存的是ffmpeg AVFrame 中extended_data数据的第0个值,iDataSize[0]则是 ...

我在回调函数中返回的SAV_Frame* pFrame中其数据格式为SAV_PIX_FMT_YUV420P,1920*1080,iDataSize[0]=1920,iDataSize[1]=960,iDataSize[2]=960;pFrame->ppData[0]中存的Y分量,ppData[1]和ppData[2]分别存的UV分量是这样吗?但如果是这样,数据大小又不对,因为YUV420P格式中u和v分量大小应该是1920/4=480才对。
author: admin    time: 2018-5-23 21:57
可自己动手分析下
author: machong    time: 2018-5-24 09:40
admin post on2018-5-23 21:57
可自己动手分析下

SAV_PIX_FMT_YUV420P,1920*1080,iDataSize[0]=1920,iDataSize[1]=960,iDataSize[2]=960;pFrame->ppData[0]中存的Y分量,ppData[1]和ppData[2]分别存的UV分量是这样吗?  是YUV420P格式的吗?
author: Mitarai    time: 2018-5-24 09:58
machong post on2018-5-24 09:40
SAV_PIX_FMT_YUV420P,1920*1080,iDataSize[0]=1920,iDataSize[1]=960,iDataSize[2]=960;pFrame->ppD ...

您好,获取的视频流是否为SAV_PIX_FMT_YUV420P,可由 afterDecode 回调中的第二个参数SAVCodec_Context,中的SAV_VideoParam结构中的SAV_PixelFormat来确定,SAV_VideoParam中也有分辨率信息,先通过这个信息确定原始数据格式
author: machong    time: 2018-5-24 10:01
Mitarai post on2018-5-24 09:58
您好,获取的视频流是否为SAV_PIX_FMT_YUV420P,可由 afterDecode 回调中的第二个参数SAVCodec_Context, ...

sdk有64位的吗?>
author: Mitarai    time: 2018-5-24 10:03
machong post on2018-5-24 10:01
sdk有64位的吗?>

64位有的。另外,对于视频流,SAV_Frame中的iDataSize是ffmpeg 中AVFrame 的linesize,即原始数据行数,不能算作帧数据大小
author: fanghj90    time: 2018-5-24 10:22
machong post on2018-5-24 09:40
SAV_PIX_FMT_YUV420P,1920*1080,iDataSize[0]=1920,iDataSize[1]=960,iDataSize[2]=960;pFrame->ppD ...

1920*1080 yuv420p情况下:
Y分量行数hs=hight = 1080   UV分量的行数hs2 = high/2 = 540
pFrame.ppData[0]  Y分量, pFrame.iDataSize[0] Y分量每行数据大小。数据大小=iDatasize[0]*hs=1920*1080 = 2073600
pFrame.ppData[1]  U分量, pFrame.iDataSize[1] U分量每行数据大小。数据大小=iDatasize[1]*hs2=960*540 = 518400
pFrame.ppData[2]  V分量, pFrame.iDataSize[2] V分量每行数据大小。数据大小=iDatasize[2]*hs2=960*540 = 518400
author: machong    time: 2018-5-24 10:27
Mitarai post on2018-5-24 10:03
64位有的。另外,对于视频流,SAV_Frame中的iDataSize是ffmpeg 中AVFrame 的linesize,即原始数据行数, ...

网盘有那个64位的sdk吗
author: admin    time: 2018-5-24 10:30
应该就是一个SDK
author: machong    time: 2018-5-24 10:39
admin post on2018-5-24 10:30
应该就是一个SDK

有64位的sdk吗?  
author: Mitarai    time: 2018-5-24 10:55
machong post on2018-5-24 10:39
有64位的sdk吗?

libBVCU暂时不支持64位
author: WhatToLearn    time: 2020-9-23 19:25
machong post on2018-5-23 12:07
那接收音视频流是要自己去重写afterDecode()对吗?

您好,请问你的问题解决了吗?pFrame里好像只有视频数据,音频数据是如何获取的?
author: besovideo    time: 2020-9-23 20:54
好,明天记得这里提醒我一下,或者加微信13355692871,
我明天一定让研发答复下你。

author: WhatToLearn    time: 2020-9-24 10:15
besovideo post on2020-9-23 20:54
好,明天记得这里提醒我一下,或者加微信13355692871,
我明天一定让研发答复下你。

您好,微信已经加了
author: coldflame    time: 2020-9-24 10:40
请参阅:
http://bbs.besovideo.com:8067/fo ... thread&tid=1293





欢迎光临 mobile CCTV,mobile surveillance,police body worn cameras (http://bbs.besovideo.com:8067/) Powered by Discuz! X3.2