ffmpeg 在 alphamerge 期间卡在最后几帧上

ffmpeg 在 alphamerge 期间卡在最后几帧上

我正在尝试使用之前提取的 alpha 文件将 alpha 通道放在 mp4 文件上。我使用的带有一些调整标志的命令如下:

ffmpeg -hide_banner -i video.mp4 -i alpha.mp4 -filter_complex "[0:v][1:v]alphamerge" -c:v libvpx -c:a libopus -b:v 2900k -crf 40 -pix_fmt yuva420p -threads 32 -auto-alt-ref 0 final_4.webm -loglevel verbose

两个文件video.mp4都是alpha.mp44k,60fps

我面临的问题是:整个过程正常工作,直到最后一帧或两帧,然后 ffmpeg 就无限期地挂起并显示最后的输出frame= 90 fps=1.2 q=0.0 size=1kB time=00:00:01.49 bitrate=5.4kbits/s speed=0.02x,在详细模式或跟踪模式下也没有输出。

令人惊讶的是,这种方法对其他一些类似的视频也有效video.mp4

ffprobe video.mp4输出如下:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.83.100
  Duration: 00:00:01.53, start: 0.000000, bitrate: 2972 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], 2905 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 70 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

ffprobe alpha.mp4输出如下:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'alpha.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.83.100
  Duration: 00:00:08.18, start: 0.000000, bitrate: 705 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], 698 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      timecode        : 00:00:00:00
  1. 有没有办法增加更多详细信息以便至少知道此时发生的情况?
  2. 与此方法不同,还有其他方法可以做到这一点,并且更加可靠和有效吗?

相关内容