我正在使用this Python library以编程方式使用单个静态图像(.PNG-3.05 MB-1920 x 1080)和音轨(.WAV-pcm_s24le(24位)-48000 Hz- 34.6 MB)作为输入。
我正在使用this technique来加快视频生成过程。
但是,output_video_final
的最终文件大小为2.33 GB。考虑到我的输入文件大小(.PNG-3.05 MB / .WAV-34.6 MB),为什么最终的.MOV输出如此之大?
这是我的代码:
'''
Generate .MOV using static image as input
'''
image = ffmpeg.input(input_image, loop='1', t='00:00:1', framerate='24000/1001', probesize='42M')
output = ffmpeg.output(image, output_video,
f='mov',
vcodec='prores_ks',
vprofile='3',
pix_fmt='yuv422p10le',
g='120',
video_track_timescale='24000',
movflags='use_metadata_tags',
timecode='00:00:00:00',
color_primaries='bt709',
color_trc='bt709',
colorspace='bt709',
qcomp='1',
preset='veryfast',
bsf='prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709',
vf='scale=in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709')
output.run()
'''
Generate .MOV using static image .MOV in previous output
and combine with audio input
'''
audio = ffmpeg.input(input_audio, filter_complex='channelsplit')
video = ffmpeg.input(output_video, t='00:02:06', stream_loop='126')
output = ffmpeg.output(video, audio, output_video_final,
vcodec='copy',
acodec='pcm_s24le',
audio_bitrate=bitrate)
output.run()
答案 0 :(得分:1)
您的原始输入是一幅图像,但是根据t='00:02:06'
,您的输出是2m 6s长的视频流,其速度为23.976 fps。因此,使用配置文件HQ上的ProRes编码器,大约可以压缩3020个全高清帧。 ProRes是一种夹层编解码器,适用于后期制作工作流,其中优先级是保持质量,而不是节约文件大小。
如果音频输入已经是24位,那么即使考虑到声道分割,它在MOV中的尺寸也大致相同。