安装FFmpeg
ffmpeg的安装是很简单的,配置好环境变量即可调用,理论上支持任何可以调用命令的语言。
ffmpeg安装:安装FFmpeg_ffmpeg 安装-CSDN博客
命令行调用
以下是一个示例命令,演示如何使用 FFmpeg 将一张 JPEG 图像转换为渐进式的 WebP 图像:
ffmpeg -i input.jpg -c:v libwebp -pix_fmt yuv420p -lossless 0 -quality 85 -qmin 0 -qmax 100 -an -f webp -pass 1 -progressive output.webp
Go语言调用
package main
import (
"os"
"os/exec"
)
func main() {
input := "input.jpg"
output := "output.webp"
cmd := exec.Command("ffmpeg",
"-i", input,
"-c:v", "libwebp",
"-pix_fmt", "yuv420p",
"-lossless", "0",
"-quality", "85",
"-qmin", "0",
"-qmax", "100",
"-an",
"-f", "webp",
"-pass", "1",
"-progressive",
output,
)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
panic(err)
}
}
Kotlin调用
import java.io.File
fun main() {
val input = "input.jpg"
val output = "output.webp"
val cmd = "ffmpeg -i $input -c:v libwebp -pix_fmt yuv420p -lossless 0 -quality 85 -qmin 0 -qmax 100 -an -f webp -pass 1 -progressive $output"
val process = Runtime.getRuntime().exec(cmd)
val errorStream = process.errorStream
val inputStream = process.inputStream
val errorOutput = errorStream.bufferedReader().readText()
val standardOutput = inputStream.bufferedReader().readText()
process.waitFor()
println("Error Output: $errorOutput")
println("Standard Output: $standardOutput")
}
python调用
import subprocess
input_file = "input.jpg"
output_file = "output.webp"
command = [
"ffmpeg",
"-i", input_file,
"-c:v", "libwebp",
"-pix_fmt", "yuv420p",
"-lossless", "0",
"-quality", "85",
"-qmin", "0",
"-qmax", "100",
"-an",
"-f", "webp",
"-pass", "1",
"-progressive",
output_file
]
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
print("Standard Output:")
print(stdout.decode())
print("Error Output:")
print(stderr.decode())