ffmepg 整理

ffmepg 整理

ffmpeg 常用命令介绍详细点

FFmpeg 是一个非常强大的开源软件,用于处理各种媒体数据,如音频、视频、字幕等。它提供了一组命令行工具和库来处理媒体数据。以下是一些常用的 FFmpeg 命令:可以查阅 FFmpeg 的官方文档或使用 man ffmpeg 命令在终端中查看手册。

官方地址:

https://github.com/FFmpeg/FFmpeg

http://www.ruanyifeng.com/blog/2020/01/ffmpeg.html 阮一峰教程

  1. 转换文件格式 :将文件从一种格式转换为另一种格式。例如,将 mp4 文件转换为 avi 文件

ffmpeg -i input.mp4 output.avi

  1. 提取音频 :从视频文件中提取音频

ffmpeg -i input.mp4 -vn output.mp3

在这里,-vn 是一个选项,它告诉 FFmpeg 忽略视频流。

  1. 提取视频 :从视频文件中提取视频,不包括音频:

ffmpeg -i input.mp4 -an output.avi

在这里,-an 是一个选项,它告诉 FFmpeg 忽略音频流。

  1. 从视频中抓取帧 :从视频中提取单帧作为图像:

ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.png

在这里,-ss 选项用于指定开始时间,-vframes 选项用于指定要提取的帧数。

  1. 剪辑视频 :可以使用 -ss 选项来指定开始时间,使用 -t 选项来指定持续时间。例如,以下命令将从视频的第 10 秒开始,并剪辑 5 秒:

ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 -async 1 output.mp4

  1. 合并视频 :首先,创建一个文本文件,如files.txt,其内容如下:

file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

ffmpeg -f concat -i files.txt -c copy output.mp4

以下是示例命令行,演示如何将多个视频文件直接在命令行中拼接:

ffmpeg -f concat -safe 0 -i "input1.mp4" -i "input2.mp4" -i "input3.mp4" -c copy output.mp4

  1. 调整视频大小 :你可以使用 -vf 选项和 scale 滤镜来改变视频的大小:

ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4

  1. 调整视频比特率 :你可以使用 -b:v 选项来改变视频的比特率:

ffmpeg -i input.mp4 -b:v 1M output.mp4

以上就是一些常用的 FFmpeg 命令。FFmpeg 的功能非常强大,有很多选项和滤镜可以使用。如果你想获取更多信息,

  1. 在指定时间位置插入文字: 要在视频的特定时间位置插入文字,你可以使用 FFmpeg 的 drawtext 过滤器。以下是一个示例命令,它将在视频的第5秒至第10秒之间显示文字"Hello World":

ffmpeg -i input.mp4 -vf "drawtext=enable='between(t,5,10)':text='Hello World':fontcolor=white:fontsize=24:x=(w-text_w)/2:y=(h-text_h)/2" output.mp4

在这个命令中,enable='between(t,5,10)' 表示在第5秒至第10秒之间显示文字。你可以修改这些参数以满足你的需求。

  1. 由图片组装为视频: 你可以使用 FFmpeg 将一系列的图片组装成一个视频。假设你有一些按顺序编号的图片(例如 img001.jpg, img002.jpg, img003.jpg...),你可以使用以下命令**:**

ffmpeg -framerate 30 -i img%03d.jpg output.mp4

在这个命令中,-framerate 30 指定了视频的帧率,img%03d.jpg 是输入文件的格式。%03d 表示数字部分会被填充到至少三位数字。

file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

这个命令会将 mylist.txt 中列出的所有视频合并成一个视频。

然后你可以使用以下命令来合并视频:

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4

这个命令会将 mylist.txt 中列出的所有视频合并成一个视频

请注意,FFmpeg 是一个非常复杂和强大的工具,有很多可能的选项和滤镜。你可能需要花一些时间学习和实验才能得到你想要的结果。如果你遇到困难,FFmpeg 的文档和在线社区是非常有用的资源。

  1. 如果你想将多个视频合并为一个多画面(比如分割屏幕)的视频,你可以使用 FFmpeg 的 hstack(水平堆叠)和 vstack(垂直堆叠)滤镜。这些滤镜可以将多个视频流堆叠为一个视频流。水平堆叠 (hstack): 这将视频并排放在一起,形成一个宽的视频。例如,如果你有两个视频文件 input1.mp4 和 input2.mp4,并想把它们水平合并在一起,你可以使用以下命令:css

a、水平堆叠 (hstack): 这将视频并排放在一起,形成一个宽的视频。例如,如果你有两个视频文件 input1.mp4 和 input2.mp4,并想把它们水平合并在一起,你可以使用以下命令:css

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex hstack output.mp4

b、垂直堆叠 (vstack): 这将视频放置在彼此的上方和下方,形成一个高的视频。例如,如果你想把同样的两个视频文件垂直合并在一起,你可以使用以下命令:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex vstack output.mp4

c、如果你有更多的视频文件需要堆叠 ,你可以相应地调整命令。例如,如果你有四个视频文件,想要将它们堆叠成一个 2x2 的网格,你可以使用以下命令:

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:v][1:v]hstack[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack" output.mp4

在这个命令中,[0:v][1:v]hstack[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack 是滤镜复杂图,它首先创建两个水平堆叠的视频(分别命名为 "top" 和 "bottom"),然后将这两个视频垂直堆叠在一起。

请注意,为了使这些命令正确工作,你的输入视频需要有相同的分辨率和帧率。如果它们没有,你需要先使用 scale 和 fps 滤镜来调整它们。

相关推荐
wangnaisheng21 天前
MIP与VR:医学影像处理与虚拟现实技术详解
vr·图像
wangnaisheng22 天前
【图像】图像的颜色深度(Color Depth)和存储格式(File Format)
图像
亿牛云爬虫专家24 天前
图像与视频页面的数据提取:从OCR到关键帧抽取的一场“视觉接管”
图像·爬虫代理·短视频·b站·抖音·小红书·数据提取
钱彬 (Qian Bin)3 个月前
AI质检数据准备利器:基于Qt/QML 5.14的图像批量裁剪工具开发实战
qt·自定义·图像·qml·qt quick·裁剪工具
蓝点lilac3 个月前
C# WPF 内置解码器实现 GIF 动图控件
c#·.net·wpf·图像
伊织code4 个月前
OpenCV 官翻 1 -介绍、安装、功能概览、核心操作
人工智能·opencv·计算机视觉·图像·直线·曲线·功能
学术小八4 个月前
第二届虚拟现实、图像和信号处理国际学术会议(VRISP 2025)
信号处理·图像·虚拟现实
xiaohanbao096 个月前
day40 python图像数据与显存
python·深度学习·学习·算法·机器学习·图像
伊织code7 个月前
SAM 2 (Segment Anything ):图像与视频通用分割模型
sam·图像·视频·模型·segment·anything·分隔