如何使用 ffmpeg 为视频添加字幕而不丢失视频缩略图?

如何使用 ffmpeg 为视频添加字幕而不丢失视频缩略图?

我正在尝试使用 ffmpeg 为视频添加字幕。该视频有一个缩略图。每当我尝试为视频添加字幕时,缩略图都会被删除。
好的,这是我在遇到此问题之前所做的事情。
我使用 ffmpeg 通过以下方式为视频添加缩略图:
ffmpeg -i video.mp4 -i image.png -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out-tt.mp4
然后我使用此命令添加字幕:
ffmpeg -i out-tt.mp4 -i subt.srt -c copy -c:s mov_text out-ss.mp4
当我在文件资源管理器中检查我的文件时,视频缩略图消失了。
我包括添加字幕之前和之后的视频文件的 ffprobe 输出:
添加字幕前(添加缩略图后)out-tt.mp4

D:\Videos>ffprobe out-tt.mp4
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002763326e700] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out-tt.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.47.100
  Duration: 00:07:04.42, start: 0.000000, bitrate: 803 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 665 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:2: Video: png, rgb24(pc), 1280x720, 90k tbr, 90k tbn, 90k tbc (attached pic)

添加字幕后(out-ss.mp4)

D:\Videos>ffprobe out-ss.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out-ss.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.47.100
  Duration: 00:07:04.91, start: 0.000000, bitrate: 801 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 665 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:2(und): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
    Metadata:
      handler_name    : SubtitleHandler

有人知道为什么会发生这种情况吗?

相关内容