使用ffmpeg给视频烧录字幕,使用nvidia gpu加速:
ffmpeg -i input_video.mp4 -vf subtitles=subtitles.srt -c:v h264_nvenc -preset fast -cq 18 output_video.mp4
参数解析
ffmpeg
FFmpeg 是一个多功能的开源多媒体处理工具,用于处理音视频转换、编码、编辑等操作。
-i input_video.mp4
-i
用于指定输入文件。在这里,input_video.mp4
是输入视频文件的路径和文件名。可以替换为任何你想要处理的源文件。
-vf subtitles=subtitles.srt
-vf
指的是视频滤镜选项,意思是“video filter”(视频滤镜)。这里使用了 subtitles
滤镜来将字幕文件 subtitles.srt
烧录到视频中。
subtitles=subtitles.srt
subtitles
是一个特定的 FFmpeg 滤镜,用于加载和渲染字幕文件。 subtitles.srt
是字幕文件的路径和文件名,需要确保文件编码格式是UTF-8,且路径和文件名正确。此滤镜会将字幕硬编码到视频中,生成一个带硬字幕的视频文件。
-c:v h264_nvenc
-c:v
是用于指定视频编码器的参数。在这里,h264_nvenc
选择 NVIDIA 的硬件加速 H.264 编码器,能够利用 NVIDIA GPU 提高编码速度。与 CPU 编码器相比,硬件加速编码器 h264_nvenc
能显著提升处理速度,但在低码率条件下可能会稍微牺牲画质。
-preset fast
-preset
是一个编码速度的控制参数,影响编码效率和生成文件大小之间的平衡。对于 h264_nvenc
编码器,preset
的范围通常包括从 p1
(最快)到 p7
(最慢):
fast
:此预设专注于速度和质量的平衡,在生成高质量视频的同时,编码时间也较短。
- 其他可能的选项:如
p1
(极快,质量低一些)、p2
、medium
(默认)、slow
等。数值越低,编码速度越快,但生成文件可能更大,或在画质上稍有损失。
-cq 18
-cq
表示“Constant Quality”(恒定质量),这是 h264_nvenc
专用的一个参数,用于设定恒定质量级别,数值范围为0到51。值越低,视频质量越高,同时文件大小也会增大。
18
:这个值通常被认为是高质量的视频输出,接近无损。通常建议范围在 18-24
,对于大多数人来说能很好地平衡质量和文件大小。
- 推荐范围:如果你想要更小的文件,
-cq 23
可能也是一个不错的选择,而如果想接近无损质量可以选择 -cq 15
或更低,但这会显著增大文件体积。
output_video.mp4
最后一个参数是输出文件的路径和文件名。在这里,output_video.mp4
是生成的视频文件的名称,可以根据需要更改文件名和格式(如 .mkv
、.avi
)。
从视频中提取音频是个相对简单的任务,不需要重新编码视频,所以GPU加速在这里帮助不大。不过让我给您几个实用的命令:
- 最基础的提取音频命令:
# 提取为mp3格式
ffmpeg -i input.mp4 -vn -acodec mp3 output.mp3
# 提取为aac格式(保持原始质量)
ffmpeg -i input.mp4 -vn -acodec copy output.aac
# 提取为wav格式(无损)
ffmpeg -i input.mp4 -vn -acodec pcm_s16le output.wav
- 常用参数说明:
-vn
: 禁用视频流
-acodec copy
: 直接复制音频流,不重新编码(最快)
-acodec mp3
: 转换为mp3格式
-ab 320k
: 指定比特率(如果需要重新编码)
- 高级用法:
# 提取特定时间段的音频
ffmpeg -i input.mp4 -ss 00:05:00 -t 00:10:00 -vn -acodec copy output.aac
# 调整音频质量
ffmpeg -i input.mp4 -vn -acodec mp3 -ab 320k output.mp3
建议:
- 如果原视频的音频是AAC格式,建议用
-acodec copy
直接提取,这样最快且无损
- 如果需要MP3格式,才使用转码
- 使用
ffprobe
可以先查看视频的音频格式:
ffprobe -i input.mp4
- 查看进度:
# 显示详细进度
ffmpeg -i input.mp4 -vn -acodec copy -progress pipe:1 output.aac
对于一小时长的视频,使用-acodec copy
的方式提取通常只需要几秒到几十秒就能完成。
Tristan
3
在新的windows电脑上安装git步骤:
在安装了Git后,您可以通过以下步骤将本地Git与您的GitHub账户关联:
1. 配置Git用户信息
首先,您需要设置您的Git用户信息,这些信息会与您的提交相关联。
打开命令提示符或者Git Bash(如果您安装了Git)并输入以下命令:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
请将Your Name
和[email protected]
替换为您在GitHub上注册的用户名和电子邮件地址。
2. 创建SSH密钥(可选)
如果您希望通过SSH连接到GitHub(这个方式更安全且不需要每次输入用户名和密码),您需要生成SSH密钥:
- 生成SSH密钥 : 在命令提示符或Git Bash中运行以下命令:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
在提示时,您可以直接按Enter
以接受默认保存位置(通常是 ~/.ssh/id_rsa
),也可以为密钥设置一个密码(可选)。
- 使用 PowerShell 复制 SSH 公钥
您可以使用下面的命令将 SSH 公钥复制到剪贴板:
Get-Content ~/.ssh/id_rsa.pub | Set-Clipboard
这条命令会读取 id_rsa.pub
文件的内容,并将其复制到剪贴板。
-
登录到您的 GitHub 帐户
打开您的浏览器,访问 GitHub 并登录到您的账户。
点击右上角的头像,选择“Settings”。
在左侧菜单中,选择“SSH and GPG keys”。
点击“New SSH key”按钮。
在“Title”字段中输入一个描述(例如“我的笔记本电脑”),然后在“Key”字段中粘贴刚才复制的公钥。
点击“Add SSH key”按钮保存。
-
测试 SSH 连接
完成上述步骤后,您可以测试与 GitHub 的 SSH 连接,使用以下命令:
ssh -T [email protected]
如果连接成功,您将看到类似于以下的欢迎消息:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Tristan
6
转录wav到mp3:
ffmpeg -i input.wav -codec:a libmp3lame -b:a 32k output.mp3