内网穿透方案
前言简单介绍一下NAT技术,NAT全称Network Address Translation,网络地址转换,简单来说就是把内网ip转为公网ip。由于ipv4地址逐渐枯竭,ip变的十分宝贵,出现了NAT这种技术,它可以让多个设备通过NAT路由器使用同一个公网ip访问互联网,而路由器之下的这些设备之间使用内网ip进行区分。这项技术很大程度的延缓了ipv4不够用的窘境,弊端则是很难从公网去访问内网资源。目前家用宽带很少能够分到公网ip了,基本上是多户共用一个公网ip,对于有从公网访问内网的需求(比如访问家里的摄像头,nas,服务器)的人来说,那就只有做一下内网穿透了。 目前有很多成熟的内网穿透方案,比如花生壳,frp等等。花生壳付费,frp虽然免费开源,但还是需要购买一台具有公网ip的服务器作为中转服务器,一年的费用也不低,像我这种白嫖怪花钱是不可能花钱的,于是把目光定在了zerotier和cloudflare提供的tunnel上 zerotier 注册账号 https://www.zerotier.com/ ,注册完成后登录后台点击Create A...
x-ui
x-ui是个小型的服务器状态面板,很多人用它来快速的配置节点,这里我只是希望用它的web界面看一下它的状态,另外用telegram接受状态通知。 首先感谢x-ui开源项目,https://github.com/FranzKafkaYu/x-ui 一键安装脚本 1bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh) 确认是否继续,如选择n则跳过本次端口与账户密码设定[y/n]: y 然后分别设置用户名,密码,端口 安装完成后在浏览器使用ip:端口即可进入后台 需要注意在面版设置里首次进入会随机生成面板 url 根路径,然后根据需要可以自己再改一下 telegram提醒里需要设置电报机器人Token、电报机器人ChatId、定时通知策略然后启用电报机器人,保存配置,重启面版。 当然,在首页还是关掉xray运行吧,毕竟内存不大,设置好大概就是这个样子。 telegram也可以收到通知
随身wifi运行ShellCrash和AdguardHome
前言上一篇文章中将随身wifi刷成了debian系统,本篇基于此为随身wifi安装ShellCrash和AdguardHome实现透明代理和广告拦截功能。(也可做为通用旁路网关的配置指南) 资源下载 UPX 官方下载:https://github.com/upx/upx/releases 下载 upx-xxx-win64.zip 文件 ShellCrash 官方下载:https://github.com/juewuy/ShellCrash/raw/master/bin/ShellCrash.tar.gz Clash.Meta 内核 官方下载:https://github.com/MetaCubeX/Clash.Meta/releases 下载 clash.meta-linux-arm64-cgo-alpha-xxx.gz 文件 AdGuardHome 官方下载:https://github.com/AdguardTeam/AdGuardHome/releases 下载 AdGuardHome_linux_arm64.tar.gz...
ffmpeg SDK学习(2)
ffmpeg sdk 解码 demo上一篇文章《ffmpeg SDK学习(1)》简单编译了一下ffmpeg,生成了可执行程序bin目录,如果想调用ffmpeg自己实现编解码功能,则需要用到静态库lib目录。官方同样提供了相应的调用库的demo例子,本文记录使用官方demo之中的decode_video.c实现H.264的解码。 首先需要H264裸流使用编译出的ffmpeg可执行程序即可从视频里提取H264裸流 123cd /root/study/ffmpeg/build64/bin#如果想调整视频分辨率 ./ffmpeg -i video.mp4 -vf scale=352:288 -y output.mp4./ffmpeg -i output.mp4 -codec copy -f h264 video.h264 拷贝生成的video.h264至examples12cp video.h264 /root/study/ffmpeg/build64/share/ffmpeg/examples/cd...
ffmpeg SDK学习(1)
linux下编译ffmpeg静态库环境: Ubuntu Desktop 20.04.5 LTS gcc version 9.4.0 1.首先安装依赖以下为必须项 123apt-get install diffutils make pkg-config yasmapt-get install libsdl2-2.0apt-get install libsdl2-dev 因为ffmpeg编码H264需要libx264,所以如果要用sdk来编码则需要安装libx264-dev,只解码的话是不需要的 1apt-get install libx264-dev 2.拉取源码我当前路径为/root/study 123git clone https://git.ffmpeg.org/ffmpeg.git ffmpegcd /root/study/ffmpeg 会在当前路径下生成ffmpeg目录,然后进入该目录 1cd...
音视频笔记(2)--PCM格式
参数(1)采样位深:每个采样点的bit数 8bits: 0~255 16bits: 0~65535 (2)采样率:每秒采样次数 16KHz:每秒采16000个采样点 (3)声道数 双声道(stereo):左-右-左-右… (4)字节序 一般使用小端存储结构,16LE:低字节高字节-低字节高字节-低字节高字节… 处理代码来自雷霄骅,致敬雷神,雷神千古! 分离test_stereo_s16le.pcm左右声道1234567891011121314151617181920212223242526/** * Split Left and Right channel of 16LE PCM file. * @param url Location of PCM file. * */int simplest_pcm16le_split(char *url){ FILE *fp=fopen(url,"rb+"); FILE *fp1=fopen("output_l.pcm","wb+"); FILE...
音视频笔记(1)--YUV格式
来源我们都知道RGB格式表示色彩,但是之前的显示器只能解析灰白的图像,为了兼容老旧设备,自然不能用RGB格式表示图像,于是YUV出现了。它可以将RGB三个分量转换成YUV三个分量,对于可以显示彩色的设备,解析Y、U、V三个分量,显示出彩色;对于老旧黑白设备,仅解析Y分量,就可以显示出黑白的图像。 YUV和YCbCr、YPbPr几个概念是一样的,Y表示亮度(Luminance),也就是灰度,U是色度(Chrominance),V是浓度(Chroma),而人眼对亮度分量Y的敏感度是高于UV分量的,所以YUV相对于RGB还可以减少数据量 RGB转YUVY = 0.299R + 0.587G + 0.114*B U = -0.147R - 0.289G + 0.436B = 0.492(B-Y) V = 0.615R - 0.515G - 0.100B = 0.877(R-Y) YUV转RGBR = Y + 1.140*V G = Y - 0.394U - 0.581V B = Y +...
分辨率格式汇总
分辨率 width height 像素数 4K 3840 2160 8,294,400 1080P 1920 1080 2,073,600 SXGA 1280 1024 1,310,720 720P 1280 720 921,600 XGA 1024 768 786,432 W4CIF 1024 576 589,824 480P 854 480 409,902 4CIF 704 576 405,504 360P 600 360 216,000 WCIF 512 288 147,456 CIF 352 288 101,376 QCIF 176 144 25,344
CentOS交叉编译环境
安装交叉编译工具, 用于编译arm64版本程序 下载交叉编译工具: https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu/, 这里选择文件 gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu.tar.xz 下载 新建安装目录 mkdir -p /usr/local/ARM-toolchain 将安装包解压到该目录下 tar -xf gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu.tar.xz -C /usr/local/ARM-toolchain/ 修改 /root/.bashrc 文件,加入如下配置 1234# Add ARM toolschain path if [ -d /usr/local/ARM-toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin ] ; then ...