在线下载 youtube 视频
无论是大名鼎鼎的 youtube-dl 还是 Gihosoft TubeGet,这一类软件都需要安装,而我只是想找个在线网站快速下载而已。
这里推荐 y2mate 或者 savefrom 在线下载 youtube 视频, DownSub 在线下载字幕, 再使用 FFmpeg 合成视频和字幕(虽然 FFmpeg 也需要安装,但恰好做多媒体相关的东西,早已安装 FFmpeg)。
Note 建议优先试用 y2mate,可以下载大多数 1080p,而 safefrom 很多时候不支持 1080p 的音频流。
在线下载 bilibili 视频
FFmpeg
合成视频字幕
在 Linux/macOS 中,可以使用 ffmpeg 命令合成视频和字幕:
ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4
注意, -c copy -c:s mov_text 的顺序是非常重要的,因为这是简写。或者可以使用如下选项 -c:v copy -c:a copy -c:s mov_text ,在这组选项里,顺序就不重要了。
其中, -i 选项用于指定需要读取的文件,在这里是视频文件与字幕文件(字幕文件 srt 与 ass 格式皆可)。
但是,对于格式为 Matroska 的视频文件(扩展名为 mkv),上述命令会提示错误信息:Subtitle codec 94213 is not supported,应当使用如下命令:
ffmpeg -i infile.mkv -i infile.srt -c copy -c:s srt outfile.mkv
截取视频片段
ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:02:00.000 -c:v libx264 output.mp4
- 指定开始时间
-ss
start second,时间格式 HH:MM:SS.MILLISECONDS - 指定结束范围
-t
指定所需剪辑的持续时间。例如,-ss 40 -t 10 指示 FFmpeg 从第 40 秒开始提取 10 秒的视频。-to
指定结束时间。例如,-ss 40 -to 70 指示 FFmpeg 从第 40 秒到第 70 秒提取 30 秒的视频。 注意:如果同时使用 -t 和 -to,那么只有 -t 将被使用。
-c:v libx264
重新编码,确保 i 帧精确到指定起始时间对应帧
裁剪视频尺寸
ffmpeg -i input.mp4 -vf crop='480:360:60:0' output.mp4
其中 480 和 360 代表裁剪后的宽和高,60 和 0 分别代表裁剪的 x 坐标和 y 坐标(基于原始图像)