当前位置: 首页 > article >正文

ffmpeg使用安装使用教程(命令行-Python)

安装教程 https://blog.csdn.net/yuanmomoya/article/details/141992114

ffmpeg转换操作视频十分的占用cpu,会把cpu打满,线上使用的话需要注意下

命令行操作

一、视频转码
将视频从一种格式转换为另一种格式:
ffmpeg -i input_video.mp4 output_video.avi

这将把输入的 MP4 视频文件input_video.mp4转换为 AVI 格式的视频文件output_video.avi

指定视频编码格式
ffmpeg -i input.mp4 -c:v libx264 output.mp4

这里将输入视频用 H.264 编码格式进行转码输出。

二、提取音频
从视频中提取音频
ffmpeg -i video_with_audio.mp4 -vn output_audio.mp3

-vn表示不处理视频流,只提取音频流输出为 MP3 文件。

三、裁剪视频
按时间裁剪视频:
ffmpeg -i input_video.mp4 -ss 00:00:10 -to 00:00:20 output_video.mp4

从输入视频中从第 10 秒开始到第 20 秒结束裁剪出一段视频输出。

按尺寸裁剪视频:
ffmpeg -i input_video.mp4 -filter:v "crop=width:height:x:y" output_video.mp4

例如crop=640:480:100:100表示裁剪出一个宽 640、高 480,从坐标 (100,100) 开始的视频区域。

四、合并视频
多个视频文件按顺序合并

首先创建一个文本文件list.txt,内容为要合并的视频文件路径,每行一个路径,例如:

file 'video1.mp4'
   file 'video2.mp4'
   file 'video3.mp4'

然后执行以下命令:

ffmpeg -f concat -safe 0 -i list.txt -c copy output_video.mp4

五、调整视频参数

改变视频分辨率:
ffmpeg -i input_video.mp4 -vf scale=width:height output_video.mp4

例如scale=640:480将视频分辨率调整为 640x480。

调整视频帧率:
ffmpeg -i input_video.mp4 -r new_framerate output_video.mp4

例如-r 30将视频帧率调整为 30 帧 / 秒。

六、截图
从视频中截取一帧图像:
ffmpeg -i input_video.mp4 -ss 00:00:10 -vframes 1 output_image.jpg

从视频的第 10 秒处截取一帧图像输出为 JPEG 格式。

七、添加水印
为视频添加图片水印:
ffmpeg -i input_video.mp4 -i watermark.png -filter_complex "overlay=x=10:y=10" output_video.mp4

在输入视频的坐标 (10,10) 处添加一个图片水印。

为视频添加文字水印:
ffmpeg -i input_video.mp4 -vf "drawtext=text='Watermark Text':fontfile=/path/to/font.ttf:fontsize=50:x=100:y=100:fontcolor=white:shadowy=2" output_video.mp4

在视频的坐标 (100,100) 处添加文字水印,设置字体、字号、颜色和阴影等参数。

Python操作

给出一个简单的示例,将视频转为720p

主要是用subprocess来执行拼接构建的ffmpeg命令

import subprocess

def convert_video(input_file, output_file, target_width=720, target_height=1280):
    # 构建 FFmpeg 命令
    ffmpeg_cmd = [
        'ffmpeg',
        '-i', input_file,
        '-y',  # 添加此行来自动覆盖现有文件
        '-vf',
        f"scale='{target_width}':'{target_height}':force_original_aspect_ratio=increase,crop='{target_width}':'{target_height}'",
        output_file
    ]

    # 执行 FFmpeg 命令
    subprocess.run(ffmpeg_cmd, check=True)


http://www.kler.cn/a/301505.html

相关文章:

  • 脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾
  • 2411rust,异步函数
  • 241113.学习日志——[CSDIY] [ByteDance] 后端训练营 [02]
  • 【51单片机】LCD1602液晶显示屏
  • Shell基础(4)
  • linux笔记(防火墙)
  • 后端Web之SpringBoot原理
  • Ubuntu 22.04 系统中 ROS2安装
  • 复仇时刻 华为的狙击还没结束
  • JAVA 使用POI实现单元格行合并生成
  • Spring Boot 四大请求编码模板(GET、POST、PUT、DELETE)
  • eureka服务开启之后的默认登录账号密码是什么?
  • SpringBoot项目部署+属性配置方式+多环境开发
  • 爬虫2:web请求与http
  • vue2 条形码 打印3*5的标签,打印标签
  • 【Linux】传输层协议——UDP
  • libyuv之linux编译
  • 【视频教程】Python语言在地球科学领域中的实践技术应用
  • 如何在本地部署大语言模型
  • Docker Container 常用命令
  • Qt-布局管理
  • C语言---函数概念深入学习基础(3)
  • 2.2.3 UDP的可靠传输协议QUIC 1
  • 安卓-音频焦点
  • 动手学深度学习(pytorch)学习记录30-含并行连接的网络(GoogLeNet)[学习记录]
  • 一天一道算法题day02