提问人:b_yang 提问时间:11/8/2023 更新时间:11/8/2023 访问量:26
从 Python 中,将图像管道传输到带有音频输入的 FFMPEG 进程,“-shortest”标志会导致输出文件仅包含 1 帧视频和整个音频
From Python, piping images to FFMPEG process with audio input, "-shortest" flag causes output file to contain only 1 frame of video and entire audio
问:
在 Python 中,我运行 FFMPEG 并通过管道将图像写入其 stdin,FFMPEG 进程也有一个音频文件作为输入。一切正常,如下所示:
cmd = ['ffmpeg', '-hide_banner', '-y', '-loglevel', 'error', '-f', 'rawvideo',
'-pix_fmt', 'bgr24', '-video_size', '720x1280', '-r', '30.0', '-an', '-i', '-',
'-i', 'audio.aac', '-acodec', 'copy',
'-crf', '14', '-pix_fmt', 'yuv420p', 'output.mp4']
proc = subprocess.Popen(cmd, **popen_params)
由于音频持续时间可能长于视频持续时间,因此我添加了一个“-shortest”标志(在“-crf”之前):
cmd = ['ffmpeg', '-hide_banner', '-y', '-loglevel', 'error', '-f', 'rawvideo',
'-pix_fmt', 'bgr24', '-video_size', '720x1280', '-r', '30.0', '-an', '-i', '-',
'-i', 'audio.aac', '-acodec', 'copy',
'-shortest', '-crf', '14', '-pix_fmt', 'yuv420p', 'output.mp4']
proc = subprocess.Popen(cmd, **popen_params)
但是,使用“-shortest”标志时,生成的输出 .mp4 包含整个音频,但仅包含 1 帧视频数据。这是怎么回事?
答: 暂无答案
评论