mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-28 16:41:52 +08:00
refactor(hwcodec): 精简FFmpeg编译配置并移除解码器
- 优化FFmpeg编译选项,禁用不需要的库(avformat/swscale/swresample/avfilter等) - 禁用所有解码器和大部分编码器,只保留实际使用的H264/H265/VP8/VP9编码器 - 移除hwcodec解码器模块,MJPEG解码改用libyuv实现 - 移除MJPEG编码器支持 - x86_64添加libmfx支持QSV编码器 - 修复H265 RKMPP编码器支持YUYV直接输入
This commit is contained in:
@@ -101,7 +101,8 @@ mod ffmpeg {
|
||||
fn link_system_ffmpeg(builder: &mut Build) {
|
||||
use std::process::Command;
|
||||
|
||||
let libs = ["libavcodec", "libavutil", "libavformat", "libswscale"];
|
||||
// Only need libavcodec and libavutil for encoding
|
||||
let libs = ["libavcodec", "libavutil"];
|
||||
|
||||
for lib in &libs {
|
||||
// Get cflags
|
||||
@@ -134,7 +135,7 @@ mod ffmpeg {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
panic!("pkg-config failed for {}. Install FFmpeg development libraries: sudo apt install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev", lib);
|
||||
panic!("pkg-config failed for {}. Install FFmpeg development libraries: sudo apt install libavcodec-dev libavutil-dev", lib);
|
||||
}
|
||||
} else {
|
||||
panic!("pkg-config not found. Install pkg-config and FFmpeg development libraries.");
|
||||
@@ -178,7 +179,8 @@ mod ffmpeg {
|
||||
)
|
||||
);
|
||||
{
|
||||
let mut static_libs = vec!["avcodec", "avutil", "avformat"];
|
||||
// Only need avcodec and avutil for encoding
|
||||
let mut static_libs = vec!["avcodec", "avutil"];
|
||||
if target_os == "windows" {
|
||||
static_libs.push("libmfx");
|
||||
}
|
||||
@@ -251,7 +253,7 @@ mod ffmpeg {
|
||||
.unwrap();
|
||||
|
||||
builder.files(
|
||||
["ffmpeg_ram_encode.cpp", "ffmpeg_ram_decode.cpp"].map(|f| ffmpeg_ram_dir.join(f)),
|
||||
["ffmpeg_ram_encode.cpp"].map(|f| ffmpeg_ram_dir.join(f)),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user