Author : zbzhen, Last modification time : Wed Jun 28 22:42:43 2023
常见需求
最终目标: 体积小,视频和音频清晰,并且有字幕的mp4文件,
整个过程都可选用免费开源软件!
必备神器ffmpeg:
当然也可以用一些开源可视化的工具, 如果不做特效的话, 个人感觉用命令行会更方便, 也会更通用
本文主要参考gpt并且用平板自带录制功能录制视频,最后处理成功
推荐两款软件
obs: https://mirrors.tuna.tsinghua.edu.cn/github-release/obsproject/obs-studio/
Captura: https://github.com/MathewSachin/Captura/releases/download/v8.0.0/Captura-Portable.zip
视频录制错了, 就暂停, 然后从某个节点开始重新录制
然后对视频做后处理, 也就是要处理:
提取视频的某一时间段, 以及多个视频的合并
噪音方面
录制视频有个比较麻烦的问题就是噪声太大,如果有N卡的话,推荐使用N卡降噪声. 参考(页面有下载地址):
https://www.nvidia.com/en-us/geforce/guides/nvidia-rtx-voice-setup-guide/#Requirements
如果没有N卡,也可用腾讯会议录制,手机电脑分别加入会议, 需要注意的是一定要断开某个设备里腾讯会议的音频。
或者采用后面提到的视频后处理的方案
下面命令表示提取视频input.mp4的00:00:00 -- 00:27:30
输出为output.mp4
ffmpeg -ss 00:00:00 -t 00:27:30 -i input.mp4 -vcodec copy -acodec copy output.mp4
比较快且使用的方法是先转化为ts格式,然后拼接
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
不过在实践中, 这样的到的视频会被莫名奇妙的被旋转了90度,后续需要做个视频旋转处理
ffmpeg -i output.mp4 -metadata:s:v rotate="90" -codec copy output2.mp4
推荐使用软件UVR:
https://github.com/Anjok07/ultimatevocalremovergui/releases
不过它依赖显卡(否则比较慢), 但是效果非常好, 可以直接提出视频中的MP3音频文件, 并且得到清晰音频; 甚至它可以用来分离歌曲中的人声和伴奏甚至合唱
不过接下来还需要一个操作:
把xx.mp4中的音频(有噪声)替换成1.MP3的音频(无噪声)
ffmpeg -i xx.mp4 -i 1.MP3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4
只需要一行简单的命令即可
推荐在线软件:
推荐离线软件:
Buzz(基于cpu):https://github.com/chidiwilliams/buzz
WhisperDesktop(基于gpu):https://github.com/Const-me/Whisper
繁体简体字幕转换工具:https://github.com/xiaoxinpro/ChineseSubtitleConversionTool
需要下载模型文件,会在首次使用自行下载,具体使用以及网盘下载链接可参考 https://www.bilibili.com/video/BV15c411j789
通过上面的软件可以通过视频文件得到.srt字幕文件
接下来就是合并字幕文件1.srt
和视频文件xxx.wmv
ffmpeg -i xxx.wmv -vf subtitles=1.srt xxx.mp4
有时候视频体积大是因为视频帧数比较高, 因此可以通过降低视频帧数来减少视频体积:
ffmpeg -i input.mp4 -r 24 -c:v libx264 -crf 23 -preset medium output.mp4
解释一下这个命令:
-i input.mp4
:指定输入视频文件的路径和文件名。-r 24
:设置输出视频的帧率为24帧/秒。你可以根据需要调整这个值。-c:v libx264
:指定使用libx264编码器进行视频压缩。-crf 23
:设置视频的质量。较低的值会产生更高质量的视频,但文件大小也会更大。较高的值会产生较低质量的视频,但文件大小会更小。一般推荐使用18-28之间的值,你可以根据需要调整这个值。-preset medium
:设置编码速度和压缩效率的预设值。可以选择的预设值有:ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow。你可以根据需要选择适合的预设值。output.mp4
:指定输出视频文件的路径和文件名。运行命令后,FFmpeg将会压缩输入视频并减少帧率,生成一个新的输出视频文件。你可以根据需要修改命令中的参数来调整压缩和帧率设置。
ffmpeg -i output2.mp4 -vn -ar 44100 -ac 2 -ab 128k -f mp3 "output.mp3"