基于ollama运行27b gemma3解决ffmpeg命令生成问题

google开源的LLM模型gemma3,提供了1B、4B、12B、27B多个版本,特别是27B版本,被认为除Deepseek R1外最好的开源模型。

这里尝试运行ollama 27B,并解决ffmpeg命令生成问题。

1 gemma3下载

1.1 ollama环境

ollama下载gemma3的27b模型,为简化操作,这里采用docker版本的ollama。

假设docker已经安装,linux安装docker参考

https://blog.csdn.net/liliang199/article/details/150067330

参考 https://hub.docker.com/r/ollama/ollama,docker启动ollama

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

bash进入ollama docker容器,提供在容器中操作ollama的bash界面

docker exec -it ollama bash

1.2 gemma3下载

以下是ollama下载指令

ollama pull gemma3:27b

ollama run gemma3:27b-it-qat

中断再重新开始下载时,可能遇到"net/http: TLS handshake timeout"问题,解决方案参考附录。

https://ollama.com/library/gemma3

2 gemma3测试

2.1 prompt

这里尝试让gemma3生成ffmpeg转化视频格式的命令,即给定目标视频编码参数情况下,让gemma3生成ffmpeg视频转化命令。

prompt示例如下

ffmpeg转化为如下质量的视频命令

... ---

... Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 463 kb/s, 25 fps, 25 tbr, 90k tbn (default)

2.2 gemma3测试

为简化分析,这个采用ollama run的方式运行gemma3:27b,命令如下

ollama run gemma3:27b

ollama模型启动后,输入上述prompt,输出示例如下。

可见,gemma3:27b生成了ffmpeg命令,而且该ffmpeg命令可以正确运行。

Okay, let's break down that stream information and build an FFmpeg command to achieve similar quality. Here's the command, followed by an explanation:

```bash

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -level 4.0 -crf 23 -preset medium -c:a aac -b:a 128k -r 25 output.mp4

```

**Explanation of the Command & Options:**

* **`ffmpeg -i input.mp4`**: This specifies the input video file. Replace `input.mp4` with the actual name of your video file.

* **`-c:v libx264`**: This sets the video codec to `libx264`, which is a very popular and efficient H.264 encoder.

* **`-profile:v high`**: This sets the H.264 profile to "high." The provided stream data indicates a High profile. This is crucial for compatibility with many devices

and players.

* **`-level 4.0`**: This sets the H.264 level to 4.0. This defines the maximum bitrate, resolution, and other parameters. Level 4.0 is appropriate for 1080p video.

* **`-crf 23`**: This is the Constant Rate Factor (CRF) setting. It's a quality-based VBR (Variable Bitrate) encoding method. Lower values mean higher quality (and

larger file sizes). 23 is a good starting point. You can experiment with values between 18-28. A good range:

* 18

2.3 deepseek测试

以下是deepseek使用相同的prompt生成的ffmpeg命令。

可见gemma3:27b生成的ffmpeg命令,已经很接近deepseek生成的效果了。

根据您提供的视频流信息,这里有几个FFmpeg命令可以实现类似的视频质量:

基本命令(保持相同参数)

```bash

保持相同编码参数

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p -s 1920x1080 -r 25 -b:v 463k output.mp4

```

推荐命令(优化版本)

```bash

使用CRF控制质量,更推荐的方式

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p -vf "scale=1920:1080" -r 25 -crf 23 -preset medium output.mp4

```

详细参数说明

```bash

ffmpeg -i input.mp4 \

-c:v libx264 \ # 视频编码器

-profile:v high \ # H.264档次

-pix_fmt yuv420p \ # 像素格式

-s 1920x1080 \ # 分辨率

-r 25 \ # 帧率

-b:v 463k \ # 视频码率

-preset medium \ # 编码速度与压缩率平衡

-movflags +faststart \ # 优化网络播放

output.mp4

```

其他选项

```bash

如果需要保持原始比例并添加黑边

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p -vf "scale=1920:1080:force_original_aspect_ratio=decrease:flags=lanczos,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -r 25 -crf 23 output.mp4

如果需要处理音频

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p -s 1920x1080 -r 25 -b:v 463k -c:a aac -b:a 128k output.mp4

```

参数说明:

  • `-crf 23`: 恒定质量模式(18-28之间,值越小质量越高)

  • `-preset`: 编码速度预设(ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow)

  • `-movflags +faststart`: 将元数据移到文件开头,便于网络流媒体播放

推荐使用CRF方式,因为它能根据内容复杂度自动调整码率,在保持质量的同时获得更好的压缩效果。

附件

ollama pull 中断再重新开始下载时,可能多次遇到如下报错

net/http: TLS handshake timeout

可能之前启动的ollama pull gemma3:27b还在运行,检测到重复握手请求,抛弃当前pull TLS handshake导致

方案:

ps aux | grep ollama,找到对应的ollama pull进程kill掉。

需要注意区分ollama serve,这是ollama服务进程。

reference


ollama gemma3

https://ollama.com/library/gemma3

Gemma 3 27B

https://deepranking.ai/llm-models/gemma-3-27b

mac基于mlx运行轻量级模型gemma-3-270m

https://blog.csdn.net/liliang199/article/details/152228535

相关推荐
m0_6351292632 分钟前
身智能-一文详解视觉-语言-动作(VLA)大模型(3)
人工智能·机器学习
知行力37 分钟前
AI一周资讯 251108-251114
人工智能·chatgpt
迦蓝叶43 分钟前
RDF 与 RDFS:知识图谱推理的基石
java·人工智能·数据挖掘·知识图谱·语义网·rdf·rdfs
DisonTangor1 小时前
【百度拥抱开源】介绍ERNIE-4.5-VL-28B-A3B-Thinking:多模态AI的重大突破
人工智能·百度·语言模型·开源·aigc
F_D_Z1 小时前
【解决办法】报错Found dtype Long but expected Float
人工智能·python
pen-ai1 小时前
【高级机器学习】 12. 强化学习,Q-learning, DQN
人工智能·机器学习
受之以蒙1 小时前
Rust ndarray 高性能计算:从元素操作到矩阵运算的优化实践
人工智能·笔记·rust
野生面壁者章北海2 小时前
NeurIPS 2024|大语言模型高保真文本水印新范式
人工智能·语言模型·自然语言处理
KG_LLM图谱增强大模型2 小时前
如何利用大语言模型(LLM)实现自动标注与内容增强
人工智能·知识管理·内容管理·本体论·图谱增强大模型·自动标签·大模型内容标注
数据与后端架构提升之路2 小时前
小鹏VLA 2.0的“神秘涌现”:从痛苦到突破,自动驾驶与机器人如何突然“开窍”?
人工智能·机器人·自动驾驶