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 滤镜来调整它们。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值