如何解决使用 ffmpeg 对 mkv 进行缩小、色调映射、缩混和重新编码
我尝试使用 ffmpeg 将 4k 缩小并将 4k HDR mkv 色调映射为 1080p SDR mkv,代码如下:
ffmpeg -i "Input.mkv" -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p -c:v hevc_nvenc -b:v 12M -preset slow "Output.mkv"
问题是,只有第一个音轨(四个)被复制到新的 mkv 并且缺少字幕轨道:
输入:
Stream #0:0: Video: hevc (Main 10),yuv420p10le(tv,bt2020nc/bt2020/smpte2084),3840x2160 [SAR 1:1 DAR 16:9],23.98 fps,23.98 tbr,1k tbn,23.98 tbc (default)
Stream #0:1(ger): Audio: eac3,48000 Hz,7.1,fltp (default)
Stream #0:2(ger): Audio: dts (DTS-HD MA),s16p
Stream #0:3(eng): Audio: truehd,s32 (24 bit)
Stream #0:4(eng): Audio: ac3,5.1(side),fltp,640 kb/s
Stream #0:5(ger): Subtitle: subrip (default) (forced)
Stream #0:6(ger): Subtitle: dvd_subtitle,1920x1080 (forced)
Stream #0:7(ger): Subtitle: hdmv_pgs_subtitle,1920x1080 (forced)
Stream #0:8(ger): Subtitle: dvd_subtitle,1920x1080
Stream #0:9(ger): Subtitle: hdmv_pgs_subtitle
Stream #0:10(eng): Subtitle: dvd_subtitle,1920x1080
Stream #0:11(eng): Subtitle: hdmv_pgs_subtitle
输出:
Stream #0:0: Video: hevc (Main),yuv420p(tv),23.98 tbc (default)
Stream #0:1(ger): Audio: vorbis,fltp (default)
Stream #0:2(ger): Subtitle: ass (default) (forced)
我想要一个 mkv 作为输出将所有音轨转换为 aac 立体声(但保留所有四个),复制字幕轨道和色调映射/缩小视频轨道。
我曾尝试使用 -map 0
或 -map 0:a:0 -map 0:a:1 ...
命令(以及一些与这些命令类似的命令,但是我似乎最终得到了一个音轨、没有视频轨或刚刚复制的视频轨.
我可能,我也想使用具有高质量预设的 nvenc,这是我命令中 -c:v hevc_nvenc -b:v 12M -preset slow
的原因,但是我不知道,如果这样做正确,因为输出 mkv 也作为 4k 视频轨道而不是 1080p。也许这是由 -c:v
引起的,因为它覆盖了 -vf
?抱歉,我觉得自己很笨,我才刚刚开始使用 ffmpeg。
关于 ffmpeg 的信息太多了,但对我来说要么太复杂,要么没有回答我的问题。
感谢您的帮助!
解决方法
ffmpeg -i "Input.mkv" -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p -map 0 -c:v hevc_nvenc -b:v 12M -preset slow -c:s copy -ac 2 "Output.mkv"
- 添加
-map 0
以包含所有流(默认行为每种类型仅选择 1 个流)。见FFmpeg Wiki: Map。 -
-ac 2
用于立体声音频。 -
-c:s copy
流式复制字幕。视频和音频正在被过滤,因此无法流式复制,必须重新编码。 - 我不是 NVENC 的用户,所以我无法对此发表评论。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。