@veye_xumm 感谢感谢
Posts made by fancong
-
RE: CS-MIPI-IMX307 Serdes适配求助
@veye_xumm 那请教一下,cs-imx307的sensor clk是24MHz还是27MHz啊?
-
RE: CS-MIPI-IMX307 Serdes适配求助
@veye_xumm 也就是只需要初始化加解串器,打通加解串器就可以了吗? 没有mipi开关之类的sensor端的寄存器操作吗?目前我这边只初始化加解串器,没有mipi进来,max9295端没有检测到mipi信号
-
CS-MIPI-IMX307 Serdes适配求助
楼主,我这边打板了一个GMSL MAX9295A的底板,用于适配您那边IMX327和IMX307等相机,serdes端已经调通,但是一直没有流,我用的是2lane的配置,据我所知,imx307端,应该有相关的寄存器需要初始化,例如,开mipi,设置分辨率等,这些寄存器在哪里可以得到呢?我看cs_imx307.c文件里面,有点杂,我想知道完整的初始化列表。
-
RE: jetson系列csi和mv相机基于JetPack_4.6.5的驱动支持
@veye_xumm 我手里有几个设备,分别是:Jetson TX2和Jetson TX2 NX,相机型号也有两种,IMX307和IMX327,感谢
-
jetson系列csi和mv相机基于JetPack_4.6.5的驱动支持
楼主大神,针对Jetson系列的最新Jetpack4的版本Jetpack_4.6.5,即R32.7.5已经发布许久了,但是我看nvidia_jetson_veye_bsp没有对应版本的csi以及mv相机的驱动,本想着自己编译源码,发现也没有对一个的patch,请问一下,这个啥时候可以支持呢?
-
ADP-N1-V2.0板载咨询
我想咨询一下,关于ADP-N1-V2.0转接板,我看转接板上面的芯片是一个I2C复用芯片,请问一下,这个转接板的使用,是否需要驱动的支持,我看到CSIMX307和其他相机的对接,都没有相关的驱动信息,这个转接板直接可以用吗? 还是需要修改驱动或者设备树之类的
-
基于VEYE系列相机CSI_IMX307的HTTP/RTSP推流方案
购买楼主的产品很久了,也受到很多帮助,现基于gstreamer和veye的框架,设计了一个HTTP/RTSP推流方案
-
硬件:
(1) Jetson全系列;
(2) VEYE系列相机; -
软件:
安装Jetson的gstreamer,可以通过如下命令进行安装:
sudo apt install -y gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base-apps -
将目前代码通过samba或者scp拷贝到jetson板子上面,解压该代码;
-
代码介绍:
├── include ---------- 公共头文件
│ ├── rtsp_server.h ---------- rtsp服务器头文件,可以独立做一个rtsp服务器
│ ├── rtsps.h ---------- rtsp服务器头文件,可以独立做一个rtsp服务器
│ ├── stream_log.h ---------- 流sdk的log公共头文件
│ ├── stream_sdk.h ---------- 流sdk,从gstreamer里面获取流并进行编码抛流
│ └── stream_server.h ---------- 私有流推流服务
├── lib
│ ├── librtsp_server.a ---------- rtsp服务器库文件,可以独立做一个rtsp服务器
│ ├── libstream_sdk.a ---------- 流sdk,从gstreamer里面获取流并进行编码抛流
│ └── libstream_server.a ---------- 私有流推流服务
├── Makefile
├── Release
│ ├── live_stream_server
│ └── src
│ └── live_stream_server.o
└── src
└── live_stream_server.c ---------- 推流程序源码 -
适配修改:
根据自己板子环境进行适配修改 live_stream_server.c:
例如我这边是两个veye csi imx307相机,带isp,加上一个麦克风,配置如下:
VIDEO_ATTR_T video_attr[SDK_MAX_VIDEO_NUM] =
{
//idx isp w h encode fps gop bps rect rotate rect rotate udpsink
{0, 1, 1920, 1080, {LOAD_TYPE_H265, 30, 30, 4096000, {{0, 0, 0, 0, 0}, 0}}, {{0, 0, 0, 0, 0}, 0}, {0, NULL, 5600}},
{1, 1, 1920, 1080, {LOAD_TYPE_H265, 30, 30, 4096000, {{0, 0, 0, 0, 0}, 0}}, {{0, 0, 0, 0, 0}, 0}, {0, NULL, 5601}},
};
AUDIO_ATTR_T audio_attr[SDK_MAX_AUDIO_NUM] =
{
{2, AUDIO_RATE_48000, 2, AUDIO_FMT_AAC},
};
我这边是是推送两个http端口,每个端口推送一路摄像头+音频,也就是音频复用到每个摄像头上面,也推到rtsp服务器上面,rtsp地址:
rtsp://192.168.10.xxx:8000/live.sdp
rtsp://192.168.10.xxx:8001/live.sdp
私有http流端口号6060和6061 -
编译运行:
直接在live_stream_server目录下面,执行make进行编译,在Release目录下生成可执行程序live_stream_server
直接运行./Release/live_stream_server,没报错即可。 -
接收流:
(1) 接收http流:直接在win平台运行流录像播放器,可以直接预览和录像http流;
(2) 就收rtsp流:直接在任意一个同网段的系统平台(win/linux/jetson),运行vlc或者ffplay等可以rtsp拉流的程序,接收流; -
提供的资料包:
流录像播放器.zip ---------- win平台接收http流预览和录像的工具
live_stream_server.tar.gz ---------- 源码和库文件
stream_tool.tar.gz ---------- sdk流状态查看工具 -
运行部分截图:
8.1 程序运行截图
8.2 工具测试截图
8.3 http流预览截图
8.4 rtsp多路预览截图[链接文本]([0_1712046402806_live_stream_server.tar.gz](正在上传 100%) 链接地址)
[0_1712046416956_live_stream_server.tar.gz](正在上传 100%) -
代码链接:
https://github.com/fancong5201314/Jetson_Push_Pull_Stream.git
-
-
IMX327相机video0获取流报错
IMX327相机video0获取流报错,接到CAM0口,按照如下解法:
SDK版本:R32.7.4
问题:- 可以识别到相机video0节点,dmesg启动信息如下:
root@fancong:/home/fancong# dmesg | grep veye
[ 1.273211] veyecam 30-003b: probing v4l2 sensor
[ 1.273252] veyecam 30-003b: reset-gpios not found
[ 1.278451] veyecam 30-003b: devm_clk_get failed for pllp_grtba
[ 1.284452] veyecam 30-003b: tegracam sensor driver:veyecam_v2.0.6
[ 1.285350] veyecam 30-003b: camera id is veyecam
[ 1.291190] veyecam 30-003b: sensor is IMX327
[ 1.295560] veyecam 30-003b: board type is ONE board
[ 1.300878] veyecam 30-003b: check hdver 5
[ 1.301288] veyecam 30-003b: Detected VEYECAM sensor
[ 1.301325] veyecam 31-003b: probing v4l2 sensor
[ 1.301375] veyecam 31-003b: reset-gpios not found
[ 1.306324] veyecam 31-003b: devm_clk_get failed for pllp_grtba
[ 1.312309] veyecam 31-003b: tegracam sensor driver:veyecam_v2.0.6
[ 1.312943] veyecam 31-003b: probe failed
[ 1.317117] veyecam 31-003b: board setup failed
[ 1.321733] veyecam 32-003b: probing v4l2 sensor
[ 1.321768] veyecam 32-003b: reset-gpios not found
[ 1.326700] veyecam 32-003b: devm_clk_get failed for pllp_grtba
[ 1.332681] veyecam 32-003b: tegracam sensor driver:veyecam_v2.0.6
[ 1.333266] veyecam 32-003b: probe failed
[ 1.337436] veyecam 32-003b: board setup failed
[ 1.342039] veyecam 33-003b: probing v4l2 sensor
[ 1.342088] veyecam 33-003b: reset-gpios not found
[ 1.347190] veyecam 33-003b: devm_clk_get failed for pllp_grtba
[ 1.353166] veyecam 33-003b: tegracam sensor driver:veyecam_v2.0.6
[ 1.353769] veyecam 33-003b: probe failed
[ 1.357942] veyecam 33-003b: board setup failed
[ 1.362543] veyecam 34-003b: probing v4l2 sensor
[ 1.362576] veyecam 34-003b: reset-gpios not found
[ 1.367507] veyecam 34-003b: devm_clk_get failed for pllp_grtba
[ 1.373482] veyecam 34-003b: tegracam sensor driver:veyecam_v2.0.6
[ 1.374052] veyecam 34-003b: probe failed
[ 1.378224] veyecam 34-003b: board setup failed
[ 1.382821] veyecam 35-003b: probing v4l2 sensor
[ 1.382853] veyecam 35-003b: reset-gpios not found
[ 1.387783] veyecam 35-003b: devm_clk_get failed for pllp_grtba
[ 1.393758] veyecam 35-003b: tegracam sensor driver:veyecam_v2.0.6
[ 1.394346] veyecam 35-003b: probe failed
[ 1.398520] veyecam 35-003b: board setup failed
[ 1.574040] tegra-vi4 15700000.vi: subdev veyecam 30-003b bound - 通过gstreamer获取流,会超时退出,信息如下:
root@fancong:/home/fancong# gst-launch-1.0 -e nvv4l2camerasrc device=/dev/video0 ! "video/x-raw(memory:NVMM),format=(string)UYVY, width=(int)1920, height=(int)1080,framerate=30/1"! nvvidconv ! "video/x-raw,format=(string)NV12" ! filesink location=1920x1080.yuv
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:05.062287433
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
dmesg信息如下:
[ 843.444445] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 843.450929] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 843.664485] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 843.671376] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 843.888503] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 843.895270] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 844.108462] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 844.115260] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 844.328531] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 844.335178] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 844.548599] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 844.555194] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 844.768457] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 844.775048] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 844.988430] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 844.995013] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 845.208502] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 845.215194] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 845.428589] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 845.435181] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 845.648424] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 845.655062] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
[ 845.868430] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 845.875043] tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel - 将相机接到CAM1等其他口子,能正常获取流;
- 可以识别到相机video0节点,dmesg启动信息如下:
-
RE: 树莓派64位连接CS-MIPI-IMX307问题
@veye_xumm 楼主,我用的这个微雪的树莓派CM4扩展板,
https://www.waveshare.net/wiki/CM4-IO-BASE-A
能麻烦帮我看看么? -
RE: VEYE-MIPI-327E 在樹梅派上如何設定RTSP?
针对RTSP这个,一般只需要一个rtspd服务器就行,可以移植live555,或者直接用gstreamer的rtsp服务器插件,甚至可以直接用ffmpeg进行rtsp推流,接收的时候,用vlc即可。
-
RE: 树莓派64位连接CS-MIPI-IMX307问题
@veye_xumm 相机在jetson nano上面能正常出图,所以相机硬件没啥问题,就是在cm4上面不行,微雪的cm4-io-baseA上面也不行,好奇怪
-
RE: 树莓派64位连接CS-MIPI-IMX307问题
@veye_xumm 你们的文档里面关于树莓派CM4的连接写的是:
"树莓派经典版型硬件连接所使用的为FFC异面线,如右图所示
树莓派Computer Module硬件连接所使用的为FFC同面线,如右图所示"
我这边需要使用同面的FFC吗? -
RE: 树莓派64位连接CS-MIPI-IMX307问题
@veye_xumm 我换了一个树莓派4B,按照经典方案进行验证,可以得到如下信息,但是只有video10,没有video0:
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f devid
hardwareid is 0x 2
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f hdver
hardware logic version is 0x33
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f firmwarever
r firmware version is 2.35
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f productmodel
PRODUCT MODEL is CS-MIPI-IMX307
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f camcap
r camera capbility 0x0005
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f videofmtcap
camera support videofmt num 3
r videofmtcap num 1 width 1920 height 1080 framerate 30
r videofmtcap num 2 width 1280 height 720 framerate 60
r videofmtcap num 3 width 640 height 480 framerate 130
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f videofmt
r old type videofmt width 1920 height 1080 framerate 30
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -w -f videofmt -p1 1920 -p2 1080 -p3 10
w old videofmt width 1920 height 1080 framerate 10
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f ispcap
r ispcap 0x17
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -w -f videofmt -p1 1920 -p2 1080 -p4 0.20
w new type videofmt width 1920 height 1080 framerate 0.20
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -r -f i2caddr -d i2caddrnow
r i2caddr 0xff
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -w -f i2caddr -p1 newi2caddr -d oldi2caddr
./cs_mipi_i2c.sh: line 586: printf: newi2caddr: invalid number
w i2caddr 0x 0 and save
w paramsave,all param will write to flash
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -w -f paramsave
w paramsave,all param will write to flash
pi@raspberrypi:bin$ ./cs_mipi_i2c.sh -w -f sysreset
w sysreset,all param will reset
这个能表示检测到了摄像头了吗? 但是为啥是video10呢?用的树莓派4B -
RE: 树莓派64位连接CS-MIPI-IMX307问题
@veye_xumm 我看你们文档里面有说明:
"对于只有1个MIPI CSI-2口的树莓派主板,i2c总线序号是10。如果你的piOS很老,那么有可能是0。"
默认是10吧