我正在尝试使用之前提取的 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.mp4
4k,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
- 有没有办法增加更多详细信息以便至少知道此时发生的情况?
- 与此方法不同,还有其他方法可以做到这一点,并且更加可靠和有效吗?