Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

自用ffmpeg压制命令详解

公共参数

  • -i:输入(input)文件;
  • -crf:控制输出文件质量,该参数取值范围为0~51,该参数值越大文件质量越差,但文件会越小,值为0时为无损(输出和输出质量相同),同时该参数对压制时间也有影响;
  • -lavfi "subtitles=sub.ass":定义一个复杂的过滤图,这里是相当于将输入文件当作底片,将subtitles覆盖于“底片”之上;
  • -c:v-c:a:控制编码过程中对视频(v)和音频(a)的编码方式,当该参数为copy时代表复制源文件的编码格式(不做编码直接复制),执行ffmpeg -codecs可以查看本机支持的编解码格式;

软字幕

软字幕是相对于硬字幕而言的,硬字幕是以图形方式直接“写”在帧上方(参考Ps中的“合并图层”);软字幕则是以文本的方式存储于文件中单独的某个轨道上(参考Pr的多轨道)。

提取

1
ffmpeg -i Source.mkv -map 0:s:0 subs-out.srt

以上代码假设了视频的名称为Source.mkv,其中:

  • -i参数后面跟随输入带有软字幕的文件;
  • -map指出提取的是视频中的哪部分;
    • 后面跟着的第一个0是指「第一个视频(流)」(这里只有一个视频(流));
    • s指的是「subtitles字幕」;
    • 最后的0指字幕中的第一个(因为视频可以含有多个字幕文件);
  • 最后的文件名subs-out.srt是输出的文件名。

删除

使用-sn开关删除软字幕。

1
ffmpeg -i "Source.mkv" -vcodec copy -acodec copy -sn "Output-No-Subs.mkv"

压入

1
ffmpeg -i "Source.mkv" -i sub.ass -codec copy -map 0 -map 1 "Output.mkv"

精准切割

1
ffmpeg -ss 00:00:00.000 -accurate_seek -to 00:14:07.468 -i Source.mkv -lavfi "subtitles=sub.ass" -crf 21 -c:a copy "Output.mp4"

该行命令的解释为:从00:00:00.000开始在Source.mkv精确寻找00:14:07.468并裁切下来,同时压入名为sub.ass的字幕,质量参数为21,音频轨道编码方式直接复制源文件编码格式,输出文件为"Output.mp4"

注意,只有在输入文件(-i)在查找参数(-accurate_seek)后面时精确查找才会生效。

压制

1
ffmpeg -i "Source.mkv" -c:v h264_nvenc -lavfi "subtitles=sub.ass" -crf 21.5 -c:a copy "Output-Main.mp4"

关于NVENC

NVENC是由NVIDIA开发的一个API,允许使用NVIDIA GPU显卡执行h.264和HEVC(H.265)编码。FFmpeg通过h264_nvenchevc_nvenc编码器支持NVENC。

要想在ffmpeg中使用NVENC,你需要一个支持硬件编解码的英伟达GPU、英伟达GPU驱动程序(最好是最新的Studio(SD)版)、在编译时配置了--enable-nvenc的ffmpeg二进制文件。

查看是否支持,只需在命令窗口执行ffmpeg -codecs,在返回中查找:

  1. configuration(编译配置参数)中必须要有--enable-nvenc
  2. 在下方的编解码器支持中必须有如下行(Encoder中必须要有h264_nvenc):
1
DEV.LS h264              H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid ) (encoders: libx264 libx264rgb h264_amf h264_mf h264_nvenc h264_qsv )

如果显卡驱动版本过低或硬件不支持会报错,根据错误提示升级显卡驱动或升级硬件即可。

 简单说两句



联系站长 | 服务状态 | 友情链接

备案号:辽ICP备19013963号

萌ICP备 20219421 号

中国互联网违法和不良信息举报中心

架构版本号:8.1.6 | 本站已全面支持IPv6

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

Copyright 2024 LingXuanNing, All rights reserved.