Openwrt使用USB网卡、视频录制压制、wget通过http下载文件夹、7z极限压缩

这波是写了感觉就写两句话,不写又感觉之后要用到的时候必然忘掉,简单搬运一下。

结果并不是两句话

路由器Openwrt+USB 4G无线网卡,对于我这个型号(ZTE-MF79U),使用的RNDIS协议,这类操作最为简单,opkg install kmod-usb-net-rndis usb-modeswitch安装这两个包(及其自动安装的依赖)解决。出现问题dmesg或者其他办法查错,这里贴一个官方支持文档:跳转。当然其他网卡也有可能出现原版内核没驱动的情况,建议先看opkg有没有预编译驱动包,没有的话可能需要手动编译对应的内核。如果完全不支持建议放弃。

Openwrt对于IP限速可以尝试luci-app-nft-qos

关于x264编码视频的关键帧(I-Frame)问题,B站需要关键帧至少10s一个,但可能并没有直接的关键帧选项,这时需要扯到GOP(Group of Pictures),GOP是由一个I帧以及若干B/P帧组成,所以控制GOP大小就可达到控制关键帧的效果。在MeGUI中,x264高级设置中的GOP选择FPS-based,下方的Maximum GOP Size 250即为最长10s一个关键帧(250/25=10s,FPS-based以25fps为基准)

OBS录制,之前总是会有各种奇怪的掉帧,xjb试出来一个还行的配置:OBS用独显运行,使用游戏捕获,编码器Intel QSV。对于运动幅度较大的第一人称FPS游戏,下面这个设置基本输出15Mb左右的码率,在比较清晰的同时还有可以接受的视频大小:

对于,运动幅度较大的3D游戏的压制,按照B站的码率要求(1080p60码率<=6000kbps,最高码率不超过20000kbps),因为用MeGUI的x264压制,成品视频中有奇怪的文字模糊(看起来是分辨率降低了),后来跳了一上午参数,用NVENC压制出来了还算不错的效果(好像NVENC没有真正的传统2pass),这里使用的是MediaCoder的ffmpeg,官网贴的链接的版本没有p7的preset:

ffmpeg -vsync 0 -hwaccel cuvid -hwaccel_output_format cuda -c:v [cuvid_decoder] -i input.flv -c:a aac -b:a 192k -c:v h264_nvenc -preset p7 -tune hq -profile:v high -rc vbr -b:v 5600k -bufsize 11200k -minrate 1400k -maxrate 18200k -g 300 -2pass true -multipass fullres output.flv
一点解释:
-preset p7 -tune hq -profile:v high:设置编码器使用最高质量编码
-rc vbr -b:v 5600k -bufsize 11200k -minrate 1400k -maxrate 18200k:动态码率编码,目标码率5600kbps,缓冲区11200kbits,最高18200kbps最低1400kbps(这个不一定生效)
-g 300:GOP设置为300,在60fps中即为5s一段,或者说关键帧5s一个
-2pass true -multipass fullres:假?2pass,在多重编码时的第一段使用完整分辨率

压制30fpsX片
ffmpeg -vsync 0 -hwaccel cuvid -hwaccel_output_format cuda -c:v [cuvid_decoder] -i input.flv -c:a aac -b:a 192k -c:v h264_nvenc -preset p7 -tune hq -profile:v high -rc constqp -qp 28 -g 150 output.flv

软件解码
去掉-i前参数

如果上面的指令报错或者有其他问题,使用ffmpeg -h encoder=h264_nvenc来查看具体帮助/参数列表,使用ffmpeg -codecs来查看支持的编/解码器,如果这个指令还报错,检查ffmpeg是否支持NVENC,以及是否有兼容显卡。其他东西建议直接看官方文档。

贴几个参考链接:

Using FFmpeg with NVIDIA GPU Hardware Acceleration :: NVIDIA Video Codec SDK Documentation

NVIDIA FFmpeg 转码指南 – NVIDIA 开发者博客

HWAccelIntro – FFmpeg

rigaya/NVEnc: NVENCによる高速エンコードの性能実験 (github.com)

wget下载URL排除index.html(好像会留下index.html.tmp),指令:

wget -np -nH -r -l 0 -c -R "index.html" "https://example.com/example/"

L4D2 Ast药役还有在维护的服务器,贴个相关网址:跳转

7z极限压缩

7z a -t7z -mx=9 -ms=1t -m0=LZMA2:27 -md=128m -mfb=273 f_fd.7z f_fd

点击数:13

发布者:Tabing010102

???

加入对话

1条评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据