【问题标题】:Use ffmpeg to downscale, tonemap, downmix and re encode mkv使用 ffmpeg 对 mkv 进行缩减、色调映射、缩混和重新编码
【发布时间】:2021-05-05 11:43:39
【问题描述】:

我尝试使用 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), 48000 Hz, 7.1, s16p
Stream #0:3(eng): Audio: truehd, 48000 Hz, 7.1, s32 (24 bit)
Stream #0:4(eng): Audio: ac3, 48000 Hz, 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), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
Stream #0:1(ger): Audio: vorbis, 48000 Hz, 7.1, 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 的信息,但是对我来说太复杂了,或者没有回答我的问题。

感谢您的帮助!

【问题讨论】:

    标签: audio video ffmpeg aac mkv


    【解决方案1】:
    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 的用户,因此无法对此发表评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-10
      • 2016-05-24
      • 2011-12-23
      • 1970-01-01
      相关资源
      最近更新 更多