一分钟聊聊Linux命令行 叮宕
-
- テクノロジー
不定期更新的日常……
-
-
-
从使用者的角度聊聊硬解
从上到下
图形渲染
API 规定者 API实现者
opengl Mesa
drm rockchip-drm 依赖 lima驱动 lima驱动和GPU直接沟通(这里是mali450)
硬件解码
API 规定者 API实现者
Video4Linux2 Hantro VPU模块(如v4l2_h264,v4l2_mem2mem) 它们再和VPU沟通
一句话简介
opengl:开源三维计算机图形图形库
mesa:开源实现opengl的图形库
drm:直接渲染管理,提供硬件独立的图形卡访问接口
Video4Linux2:管理与访问视频设备的子系统
ffmpeg:完整的、开源的、免费的视频和音频处理软件工具包
一个典型的在rockchip 盒子上,使用mainland内核编译ffmpeg的参数选项:
./configure --enable-libdrm --enable-libpulse --enable-libx264 --enable-libx265 --enable-v4l2-request --enable-libudev --enable-shared --enable-gpl --enable-version3
注意,ffmpeg官方主线不支持v4l2-request,你需要找支持的fork来编译 -
用socat 的读写分离两行撸出个聊天功能
第一个终端socat -\!\!- tcp-listen:6666,fork第二个终端socat -\!\!- tcp:localhost:6666
-
用socat 命令讲讲组播
发送
echo '你们好,224.0.0.37组播的用户们' | socat - udp4-datagram:224.0.0.37:6666
接收
socat udp4-recvfrom:6666,ip-add-membership=224.0.0.37:wlan0,fork -
注意 录的时候没说到 接收组播那个ip-add-membership=224.0.0.37意思就是自己加入224.0.0.37这个组播,后面那个冒号跟的是网卡的接口名。为啥要这样呢,录音里不是说了 组播地址又不能分配给网卡或者主机。组播地址代表的是整个组播组.
是Internet 组管理协议称为IGMP协议 -