-
Ubuntu升级
升级步骤:```#更新软件sudoaptupdatesudoaptupgradesudoaptdist-upgradesudoaptautoremovesudoaptclean#更新系统sudodo-release-upgrade-csudodo-release-upgrade-d```如果提示没有`LTS`版本就去掉`-d`参数,还是建议使用`LTS`版本,除非你是开发人员或者尝鲜人员。
Ubuntu -
wxWidgets hidpi导致模糊问题
现在很多电脑都是高清屏,但是使用的时候字体太小所以很多都会缩放屏幕,这样就会导致一些软件变得模糊。`Win`解决方案有两个:##手动设置##代码设置```#include"WinUser.h"SetProcessDPIAware();````Linux`和`Mac`没接触过🤡🤡🤡
wxWidgets hidpi -
vcpkg总结
不得不说有了`vcpkg`之后,`windows`的包管理也非常方便了,这里总结一些技巧。##常用命令```vcpkgsearchvcpkginstallvcpkglistvcpkgremove```##重新编译安装```--recurse```##指定`64`位系统```#命令vcpkginstallwxwidgets:x64-windows#环境变量VCPKG_DEFAULT_TRIPLET=x64-windows```##清理垃圾```downloads:下载文件可以删除(但是不建议删除里面包含工具链)buildtrees:编译目录可以删除```
vcpkg -
文档结构
总结一些常用文档结构```背景(目标)方案设计流程...总结(结果、风险、问题)优化(后续工作)开发计划技术风险测试报告常见问题```
文档结构 -
ldconfig导致连接失效
```ln-sf/usr/local/lib64/libstdc++.so.6.0.29/usr/lib64/libstdc++.so.6```上面的连接文件执行`ldconfig`之后连接就会失效,需要先连接全名,然后再次连接文件即可。```ln-sf/usr/local/lib64/libstdc++.so.6.0.29/usr/lib64/libstdc++.so.6.0.29ln-sf/usr/lib64/libstdc++.so.6.0.29/usr/lib64/libstdc++.so.6```
ldconfig -
GLIBC安装问题
**升级`GLIBC`容易导致系统崩溃,所以建议多开几个`SSH`窗口,同时建议一个版本一个版本升级,版本跨度不要太大。**```2.17->2.28可以2.17->2.3x不行``````无法识别的选项"--gdwarf-4"```这个是`as`版本太低导致的,连接一个新的即可。```ls:relocationerror:/lib64/libpthread.so.0:symbol__libc_dl_error_tsd,versionGLIBC_PRIVATEnotdefinedinfilelibc.so.6withlinktimereference```升级`glibc`可能会导致系统崩溃,使用下面命令还原:```sln/usr/lib64/ld-2.17.so/usr/lib64/ld-linux-x86-64.so.2sln/usr/lib64/libc-2.17.so/usr/lib64/libc.so.6sln/usr/lib64/libm-2.17.so/usr/lib64/libm.so.6```下面问题可以忽略:```PleasereadtheFAQandtheREADMEfile...
GLIBC -
VSCode配置Java
##配置不同版本```"java.configuration.runtimes":[{"name":"JavaSE-17","path":"C:\\develop\\java\\jdk-17.0.1"},{"name":"JavaSE-11","path":"C:\\develop\\java\\jdk-11.0.2","default":true},{"name":"JavaSE-1.8","path":"C:\\develop\\java\\java-se-8u41-ri"}]```##配置编码```{"configurations":[{"type":"java","name":"Application","request":"launch","mainClass":"com.acgist.snail.javafx/com.acgist.main.Application","projectName":"snail.javafx","encoding":"UTF-8"}]}```
VSCode Java -
libtorch项目cuda错误
##requiresthelanguagedialect"CUDA23"```CMakeErrorin/data/lifuren/build/CMakeFiles/CMakeTmp/CMakeLists.txt:Target"cmTC_c4c9f"requiresthelanguagedialect"CUDA23"(withcompilerextensions),butCMakedoesnotknowthecompileflagstousetoenableit.CMakeErroratdeps/libtorch-gpu/share/cmake/Caffe2/Modules_CUDA_fix/upstream/FindCUDA/select_compute_arch.cmake:120(try_run):Failedtogeneratetestprojectbuildsystem.CallStack(mostrecentcallfirst):deps/libtorch-gpu/share/cmake/Caffe2/Modules_CUDA_fix/upstream/FindCUDA/select_compute...
libtorch cuda -
获取apt包的下载地址
```sudoaptinstall--reinstall--print-urislibyaml-cpp-dev```
apt -
CentOS配置named作为DNS解析服务
```yuminstallbindbind-utilsfirewall-cmd--permanent--add-service=dnsfirewall-cmd--reloadvim/etc/named.conf---listen-onport53{any;};listen-on-v6port53{any;};allow-query{any;};---vim/etc/named.rfc1912.zones---zone"acgist.com"IN{typemaster;file"/etc/acgist.com.zone";};---vim/etc/acgist.com.zone---;@=本域$TTL1D@INSOA@acgist.com.(01H10M1D3H)INNS@;@INA127.0.0.1;wwwtestINA10.0.0.1;子域demoINA10.255.163.252;子域---chownnamed:named/etc/acgist.com.zonesystemctlrestartnamedsystemctlenablenamednslookupacgist.com127.0.0.1nsloo...
CentOS named DNS -
FFmpeg片段
##SDP输入```constAVInputFormat*iformat=av_find_input_format("sdp");AVDictionary*format_opts=NULL;av_dict_set(&format_opts,"sdp_flags","custom_io",0);avformat_open_input(&inputFormatCtxPtr,"video.sdp",iformat,&format_opts);```##RTP配置```AVDictionary*options=NULL;//av_dict_set(&options,"pkt_size","1400",0);//av_dict_set(&options,"buffer_size","102400",0);//av_dict_set(&options,"send_buffer_size","102400",0);av_opt_set_int(outputFormatCtxPtr->priv_data,"payload_type",96,0);avio_open2(&a...
FFmpeg -
技术路线
整理一下以后技术路线##代码*逻辑*安全*性能##操作系统LinuxDebianUbuntuWindows##业务后台DubboSpringBootSpringCloudSpringCloudAlibaba##音视频FFmpegOpenCVWebRTCMediasoup##网络编程TCP/IPTCP/UDP/RTP/HTTP...socket/asio/muduo/libcurl/libev/libuv/libevent##人工智能PyTorchLibTorchTensorRTOpenVINOONNXRuntime##硬件CPUGPUMEM##财富基金股票医疗、科技、能源、芯片##分析调试gdbperfgprofvalgrind>真别再去看什么嵌入式开发、驱动开发了🤡🤡🤡学不动了,现在需要的是深度了不是广度了。
技术路线 -
FFmpeg内存模式fmp4
```if(!this->start){//I帧AVDictionary*options=nullptr;//frag_keyframe+empty_moov//frag_keyframe+empty_moov+default_base_moof//frag_keyframe+delay_moov+default_base_moof+faststart//Winh264_mf可以使用delay_moov|empty_moov//Linuxlibx264只能使用delay_moov否则空头可能解析失败av_dict_set(&options,"movflags","frag_keyframe+delay_moov+default_base_moof+faststart",0);avformat_write_header(this->formatCtx,&options);av_dict_free(&options);this->start=true;}```网上很多都是`empty_moov`但是`Linux`使用`MediaSource`播放保存,改成`delay_m...
FFmpeg FMP4 -
C++一些错误
##死锁```terminatecalledafterthrowinganinstanceof'std::system_error'what():Resourcedeadlockavoided已中止(核心已转储)```这个问题在`Windows`上面是没问题的,但是`Linux`就是出现,最后发现原来是`std::async`执行需要释放完成才能结束线程。##CUDA```2024-12-2520:56:05.198288284[E:onnxruntime:face-feature,cuda_call.cc:123CudaCall]CUDAfailure700:anillegalmemoryaccesswasencountered;GPU=0;hostname=dmx-SYS-7048GR-TR;file=/onnxruntime_src/onnxruntime/core/providers/cuda/gpu_data_transfer.cc;line=63;expr=cudaMemcpyAsync(dst_data,src_data,bytes,cudaMemcpyHostToDevice,static_c...
C++ ONNX CUDA -
FFmpeg内存模式和文件模式
不用写出文件直接读取编码数据```aliang::media::VideoEncoderencoder(1080,1080);//文件模式//AVFormatContext*outputCtx=avformat_alloc_context();//avformat_alloc_output_context2(&outputCtx,NULL,NULL,"D:/tmp/aliang1.mp4");//AVStream*video_stream=avformat_new_stream(outputCtx,NULL);//avcodec_parameters_from_context(video_stream->codecpar,encoder.codecCtx);//avio_open(&outputCtx->pb,"D:/tmp/aliang1.mp4",AVIO_FLAG_WRITE);//AVDictionary*options=nullptr;////frag_keyframe+empty_moov////frag_keyframe+empty_moov+default_base...
FFmpeg -
debian多语言
```#修改sudoaptinstalllocalessudodpkg-reconfigurelocales#查看所有locale-a#查看当前locale```
debian -
AI技术选型
##编程语言`python`没办法必须了解,几乎所有训练框架都是`python`。```c++python```##训练框架```pytorchlibtorchtensorflowPaddlePaddlescikit-learn```##部署环境```ggmltensorrtopenvinoonnxruntime```##其他框架```dlibfaissollamaopencvffmpeg```
AI -
H2数据库修复
最近有些简单项目直接使用内嵌的`H2`数据库,但是单元测试跑着跑着文件损坏了,使用下面命令可以修复:```#原始JDBC链接:jdbc:h2:file:./hfx.db#导出SQL文件java-cp.\h2-2.2.224.jarorg.h2.tools.Recover-dbhfx.db#修改旧的文件名称hfx.db.mv.db->hfx.db.mv.db.backupjava-cp.\h2-2.2.224.jarorg.h2.tools.RunScript-urljdbc:h2:file:./hfx.db-script.\hfx.db.h2.sql```旧的文件建议保留,没有问题以后再删除。
H2 -
Java通过FFmpeg实现rtp多路推流
```packagecom.acgist.stream;importjava.io.File;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;importjava.net.InetSocketAddress;importjava.nio.ByteBuffer;importjava.security.cert.X509Certificate;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importjava.util.Properties;importjava.util.Timer;importjava.util.TimerTask;importjava.util.concurrent.TimeUnit;importjavax.net.ssl.H...
Java FFmpeg RTP -
Debian解决vim乱码
```vim/etc/vim/vimrc---setfileencodings=utf-8,gbk,gb2312settermencoding=utf-8setencoding=prc---```
debian vim