FFmpeg进行简单的视频编辑与代码写法实例

使用 FFmpeg 进行简单的视频编辑非常强大。它是一个命令行工具,虽然一开始可能看起来有点复杂,但掌握了基本命令后会非常有用。

以下是一些常见的简单视频编辑操作及其 FFmpeg 命令:


1. 剪切视频

如果你想从一个视频中剪切出一段,你需要指定开始时间 (-ss) 和持续时间 (-t),或者开始时间 (-ss) 和结束时间 (-to)。

  • 指定持续时间:

    ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -codec copy output.mp4
    
    • -i input.mp4:指定输入文件。
    • -ss 00:01:00:从视频的第 1 分钟开始剪切(时:分:秒)。
    • -t 00:00:30:剪切 30 秒的持续时间。
    • -codec copy:这非常重要!它会直接复制视频和音频流,而无需重新编码,这样速度快,并且不会损失质量。
  • 指定结束时间:

    ffmpeg -i input.mp4 -ss 00:01:00 -to 00:01:30 -codec copy output.mp4
    
    • -to 00:01:30:剪切到视频的第 1 分 30 秒。

2. 改变视频分辨率(缩放)

如果你想改变视频的尺寸,可以使用 -vf scale 过滤器。

ffmpeg -i input.mp4 -vf scale=1280:-1 output_720p.mp4
  • -vf scale=1280:-1:将视频宽度设置为 1280 像素,-1 会自动计算高度以保持宽高比。你也可以指定具体的高度,例如 scale=1280:720
  • 注意: 改变分辨率需要重新编码,这会比复制流慢。

3. 提取音频

从视频中提取音轨。

ffmpeg -i input.mp4 -vn output.mp3
  • -vn:表示不包含视频流(video no)。
  • output.mp3:指定输出的音频文件格式。你也可以使用 .aac 或其他音频格式。

4. 提取视频(无音频)

从视频中移除音轨,只保留视频。

ffmpeg -i input.mp4 -an -codec copy output_no_audio.mp4
  • -an:表示不包含音频流(audio no)。
  • -codec copy:同样,为了避免重新编码,使用这个参数可以快速提取。

5. 合并视频(串联)

如果你有多个视频片段,想把它们按顺序连接起来,可以使用 FFmpeg 的 concat 解复用器或过滤器。

推荐方法:使用 Concat Demuxer (列表文件)

这种方法更快,因为不需要重新编码。

  1. 创建一个文本文件 (例如 mylist.txt),列出你要合并的视频文件,每个文件一行,格式如下:

    file 'input1.mp4'
    file 'input2.mp4'
    file 'input3.mp4'
    
  2. 运行 FFmpeg 命令:

    ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
    
    • -f concat:使用 concat 解复用器。
    • -safe 0:在某些情况下可能需要,允许读取绝对路径或危险路径。
    • -i mylist.txt:指定包含文件列表的文本文件。
    • -c copy:复制流,不重新编码。
替代方法:使用 Concat 过滤器 (如果文件格式或编码不同,或需要更复杂的处理)

如果你的视频文件格式或编码不同,或者你需要对视频进行其他处理(例如调整大小),则需要使用 concat 过滤器,这会重新编码。

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4
  • -i input1.mp4 -i input2.mp4:输入多个文件。
  • -filter_complex:使用复杂过滤器图。
  • [0:v][0:a][1:v][1:a]:指定输入流 (第一个文件是 0,视频是 v,音频是 a)。
  • concat=n=2:v=1:a=1n=2 表示有两个输入文件,v=1 表示输出一个视频流,a=1 表示输出一个音频流。
  • -map "[v]" -map "[a]":映射输出的视频和音频流。

6. 添加水印/叠加图像

在视频上叠加一个图片(例如水印)。

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output_watermarked.mp4
  • -i watermark.png:第二个输入是你的水印图片。
  • -filter_complex "overlay=10:10":使用 overlay 过滤器。10:10 是水印左上角的 x 和 y 坐标,表示距离视频左上角 10 像素。

7. 改变视频速度

如果你想让视频播放得更快或更慢,可以使用 setptsatempo 过滤器。

改变视频播放速度 (不改变音高)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output_faster.mp4
  • setpts=0.5*PTS:将视频播放速度加快一倍(0.5 倍持续时间)。对于减慢速度,可以使用大于 1 的值,例如 2.0*PTS 会让视频慢两倍。
  • atempo=2.0:将音频播放速度加快一倍。atempo 的值必须在 0.5 到 2.0 之间。如果你需要更快的速度,可以链式使用多个 atempo 过滤器(例如 atempo=2.0,atempo=2.0)。

8. 旋转视频

将视频顺时针旋转 90 度。

ffmpeg -i input.mp4 -vf "transpose=1" output_rotated.mp4
  • transpose 过滤器参数:
    • 0 = 逆时针旋转 90 度并垂直翻转 (默认)
    • 1 = 顺时针旋转 90 度
    • 2 = 逆时针旋转 90 度
    • 3 = 顺时针旋转 90 度并垂直翻转

开始使用前

  1. 安装 FFmpeg: 如果你还没有安装,可以访问 FFmpeg 官方网站下载适合你操作系统的版本并进行安装。
  2. 打开命令行/终端: 所有这些命令都在命令行界面中执行。

 热门原创推荐

  • 无版权,全免费,请收藏这10个免费高清无权素材网站
  • 常用照片尺寸对照表,照片大小看这个表就OK了
  • 如何使用FTP上传文件(FTP文件传输)
  • 在线视频加密播放(加密视频观看)操作教程完整版
  • 企业公众号菜单添加视频的完整教程(组图)

视频加密与在线教育文章

  • 专业教育机构付费课程视频如何做加密防下载防盗录
  • 在线教学课程视频AI智能大纲代码与演示
  • 说说付费课程视频加密技术以及防翻录方法有哪些?
  • Html5Player加密视频播放器添加ID跑马灯的效果
  • 问答播放器(视频弹题)使用例子(代码)
  • 视频自动生成字幕原理和自动生成字幕的应用实例

AI工具类文章

  • AI应用:mijdourney 如何写prompt
  • Midjourney最基础的一些使用设置
  • Gemini 前世今生全面的信息介绍
  • AI视频成工具D-ID介绍(AI数字人常用工具)
  • Midjourney Prompt的使用基本结构介绍

视频加密/防下载/防录屏

  • 防止付费课程视频被盗被下载的五大招数
  • 企业内训视频加密防盗录全攻略
  • 视频加密的两种常见的方式数字版权管理和加密算法与应用

FFmpeg视频编码

  • 如何设置FFmpeg进行高分辨率视频转码?
  • 视频处理时的截图工具ffmpeg截图用法实例
  • FFmpeg视频编码的完整操作指南
  • FFmpeg最常用命令参数详解及应用实例(很全值得收藏)

谷歌浏览器

  • Chrome提示由贵单位管理该怎么取消?
  • 关闭谷歌更新提示“若要接收后续 google chrome 更新,您需使用 windows 10或更高版本”
  • chrome谷歌浏览器书签不同步的解决办法
  • Chrome浏览器无痕浏览真的无痕吗?
  • 关闭谷歌浏览器输入框记忆功能的方法

ThinkPad电脑

  • ThinkPad系列产品进入BIOS并设置U盘启动的详细步骤
  • 通用的ThinkPad BIOS 设置指南(精简版)

视频直播

  • 企业如何做虚拟直播(绿幕抠像直播)
  • 视频直播推流攻略(整理的各大平台推流界面)
  • OBS直播工具使用指南/OBS推送直播视频源到服务器的工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86689.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用免费软件写论文?六个免费论文生成软件使用指南

在学术写作中,利用AI技术和免费的写作工具可以极大地提高效率,尤其对于需要处理大量文献、结构化写作的论文来说,使用合适的软件能节省时间,提升论文质量。这里为您推荐六个免费的论文生成软件,并提供使用指南&#xf…

大数据系统架构实践(二):Hadoop集群部署

大数据系统架构实践(二):Hadoop集群部署 文章目录 大数据系统架构实践(二):Hadoop集群部署一、Hadoop简介二、部署前准备三、部署Hadoop集群1. 下载并解压安装包2. 配置hadoop-env.sh3. 配置core-site.xml4…

42道Maven高频题整理(附答案背诵版)

1.简述什么是Maven? Maven是一个项目管理和构建自动化工具,主要服务于Java项目。使用Maven,开发者可以方便地管理项目的构建、文档生成、报告、依赖、SCM(软件配置管理)、发布和分发等过程。 Maven的核心概念是基于项…

【数字后端】- 如何进行时钟树综合?

首先,要明确的是,时钟树综合只有命令去操作这一种方式 CTS的步骤 1、时钟树综合前的准备工作-设置时钟树cell(每个项目必做) 最简单的项目要设置生长时钟树时可用的clock buffer和clock inverter cell list,如下 此…

OpenCV CUDA模块设备层-----像素值进行逐通道的最大值比较函数max()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 是 OpenCV 的 CUDA 模块(cv::cudev) 中的一个 设备端内联函数(device function),用于…

SCSAI万物对象模型和五维市场交易平台原型

一个完整的工业软件对象模型平台,基于SCSAI对象模型和五维市场理论。该平台包含对象管理、五维市场交易和大模型集成功能。 工业软件对象模型平台功能说明 这个平台实现了基于Aras Innovator对象模型和五维市场理论的工业软件解决方案,主要功能包括&…

昇腾のPrefix Cache

Prefix Cache特性介绍 Prefix Cache 即前缀缓存,是一种用于优化大语言模型(LLM)推理性能的技术,主要应用于多轮对话、系统提示等具有大量共同前缀的场景。 原理 LLM 推理计算主要包括 Prefill 阶段(Prompt 计算&…

12-C#的list数据使用

C#的list数据使用 1.实例化 List<double> lst1 new List<double>();2.数据清除 lst1 .Clear();3.数据清除

SQL数据迁移利器:INSERT INTO SELECT语句详解

引言 在数据库操作中&#xff0c;我们经常需要将一个表中的数据迁移或复制到另一个表中。这时候&#xff0c;INSERT INTO SELECT语句就成为了一个极其有用的工具。今天我们就来深入探讨这个强大的SQL语句。 基本语法 INSERT INTO 目标表(字段1, 字段2, ...) SELECT 字段1, 字…

elementUI轮播图组件el-carousel适配移动端大小(图片加载好后根据大小适配)

获取img实例&#xff0c;动态设置el-carousel高度 <template><div class"content main"><el-carousel arrow"always" :height"bannerHeight px"><el-carousel-item v-for"(item, index) in banners" :key"…

AI歌手Yuri出道:GenAI,透露着新的AI产业机遇?

名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、AI歌手Yuri横空出世1. 爆红的原生MV《SURREAL》2. 背后的创作团队 二、AI歌手背…

常见的自动化测试工具,好学吗?

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。它通常涉及预设测试用例&#xff0c;并通过自动化工具或脚本来执行这些用例&#xff0c;最后比较实际结果与期望结果来评估软件的正确性。 常见的自动化测试工具包括Selenium、Appium、JMeter、LoadRunner、Post…

JavaEE初阶第四期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(二)

专栏&#xff1a;JavaEE初阶起飞计划 个人主页&#xff1a;手握风云 目录 一、Thread类及常用方法 2.1. Thread的常见构造方法 2.2. Thread的常见属性 2.3. 启动一个线程 2.4. 中断一个线程 2.5. 等待一个线程 2.6. 休眠当前线程 一、Thread类及常用方法 2.1. Thread的…

elk+filebeat收集springboot项目日志

目录 步骤 1: 安装和配置Elasticsearch 步骤 2: 安装和配置Logstash&#xff08;可选&#xff09; 步骤 3: 安装和配置Filebeat 步骤 4: 安装和配置Kibana 要使用ELK&#xff08;Elasticsearch, Logstash, Kibana&#xff09;堆栈和Filebeat来收集Spring Boot项目的日志&am…

基于Python实现(控制台)UDP传输协议的可靠文件传输工具

LFTP Design 简介 LFTP是一个采用python3实现的基于UDP传输协议的可靠文件传输工具 特点 基于UDP 采用python3编程语言&#xff0c;socket的类型均为socket(AF_INET,SOCK_DGRAM)实现 实现100%可靠性传输 使用SR&#xff08;选择重传&#xff09;协议保证所有报文都正确接收…

【Go-7】面向对象编程

7. 面向对象编程 面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种编程范式&#xff0c;通过将数据和行为封装在对象中&#xff0c;以提高代码的可重用性、可维护性和扩展性。虽然Go语言不像传统的OOP语言&#xff08;如Java、C&am…

PHP语法基础篇(六):数组

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化&#xff1b;它可以被视为数组、列表&#xff08;向量&#xff09;、哈希表&#xff08;映射的实现&#xff09;、字典、集合、堆栈、队列等等。本篇文章将记录数…

GitHub Actions 的深度解析与概念介绍

GitHub Actions 核心定义 Git Actions 是 GitHub 原生提供的 自动化工作流引擎&#xff0c;允许开发者在代码仓库中直接创建、测试、部署代码。其本质是通过事件驱动&#xff08;Event-Driven&#xff09;的自动化管道&#xff0c;将软件开发中的重复任务抽象为可编排的流程。…

TestCafe 全解析:免费开源的 E2E 测试解决方案实战指南

在2025年的数字化浪潮中&#xff0c;Web应用的稳定性和用户体验成为企业竞争的关键&#xff0c;而端到端&#xff08;E2E&#xff09;测试则是确保质量的“守护者”&#xff01;想象一下&#xff0c;您的电商平台因表单错误导致用户流失&#xff0c;或者支付流程因浏览器兼容性…

[CVPR 2025] 高效无监督Prompt与偏好对齐驱动的半监督医学分割

CVPR 2025 | 优化SAM&#xff1a;高效无监督Prompt与偏好对齐驱动的半监督医学分割 论文信息 标题&#xff1a;Enhancing SAM with Efficient Prompting and Preference Optimization for Semi-supervised Medical Image Segmentation作者&#xff1a;Aishik Konwer, Zhijian…