FFmpeg copy mkv封面无需重新编码(`c:t copy`不起作用)

FFmpeg copy mkv封面无需重新编码(`c:t copy`不起作用),ffmpeg,Ffmpeg,使用带有封面艺术的Matrsoka测试文件,我试图使用-c copy方法复制封面,但我只需要为封面本身指定,但是-c:t copy似乎不起作用 视频文件流: Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp (default) Stream #0:1: Video: h264 (High), yuv420p(progressive), 1272x720 [SAR 1:1 DAR 53:30], 24 fps, 24 tbr, 1k tbn,

使用带有封面艺术的Matrsoka测试文件,我试图使用
-c copy
方法复制封面,但我只需要为封面本身指定,但是
-c:t copy
似乎不起作用

视频文件流:

Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
Stream #0:1: Video: h264 (High), yuv420p(progressive), 1272x720 [SAR 1:1 DAR 53:30], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
Stream #0:2: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 600x882 [SAR 300:300 DAR 100:147], 90k tbr, 90k tbn, 90k tbc (attached pic)
Metadata:
  filename        : cover.jpg
  mimetype        : image/jpeg
Stream #0:3: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 120x176 [SAR 300:300 DAR 15:22], 90k tbr, 90k tbn, 90k tbc (attached pic)
Metadata:
  filename        : small_cover.jpg
  mimetype        : image/jpeg
Stream #0:4: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 1067x600 [SAR 96:96 DAR 1067:600], 90k tbr, 90k tbn, 90k tbc (attached pic)
Metadata:
  filename        : cover_land.jpg
  mimetype        : image/jpeg
Stream #0:5: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 213x120 [SAR 96:96 DAR 71:40], 90k tbr, 90k tbn, 90k tbc (attached pic)
Metadata:
  filename        : small_cover_land.jpg
  mimetype        : image/jpeg
使用此命令可按预期工作:

ffmpeg -y -i "cover_art.mkv" -map 0:1 -c:0 libx265 -map 0:4 -c:1 copy out.mkv
正确的流映射:

Stream #0:1 -> #0:0 (h264 (native) -> hevc (libx265))
Stream #0:4 -> #0:1 (copy)
  Stream #0:1 -> #0:0 (h264 (native) -> hevc (libx265))
  Stream #0:4 -> #0:1 (mjpeg (native) -> hevc (libx265))
但是,使用ffmpeg时,我并不总是知道附件曲目的输出索引。我希望我可以使用类似于
-c:t copy
的东西,就像视频/音频/字幕一样。因为如果未指定,则会将其重新编码为x265,这将引发错误

 ffmpeg -y -i "cover_art.mkv" -map 0:1 -c:v libx265 -map 0:4 -c:t copy out.mkv
错误的流映射:

Stream #0:1 -> #0:0 (h264 (native) -> hevc (libx265))
Stream #0:4 -> #0:1 (copy)
  Stream #0:1 -> #0:0 (h264 (native) -> hevc (libx265))
  Stream #0:4 -> #0:1 (mjpeg (native) -> hevc (libx265))
(错误是由于图像的分辨率造成的,对此并不担心,只是根本不想重新编码)


使用FFmpeg版本
FFmpeg版本2020-09-16-git-c79f07cc0c-full_build-www.gyan.dev

这里有一个包含图像的视频流-映射0:t是指通常用于字幕字体的附件流。FFmpeg区分任何视频流和运动视频流,其中v和v-map 0:v是仅运动的视频流。但是,我不知道如何在复制图像视频流的同时对运动视频进行编码。