FFMPEG drawtext 过滤器导致错误“过滤和流复制不能同时使用”

FFMPEG drawtext 过滤器导致错误“过滤和流复制不能同时使用”

我正在尝试拍摄一个大视频,将其分成几个小片段,并用特定的标题和帧数覆盖它。但是,当我尝试执行此操作时,我遇到了错误“过滤和流复制不能一起使用”。有没有办法解决这个问题?我对 FFMPEG 中的许多命令选项并不完全了解。现在我相信我正在使用复制选项。

ffmpeg -i Full_movie.mov -vf "drawtext=fontfile=/System/Library/Fonts/Keyboard.ttf: text='TEST TITLE - %{frame_num}': start_number=1: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: fontsize=20: box=1: boxcolor=black: boxborderw=5","format=yuv420p" -f segment -segment_frames 123 -shortest -reset_timestamps 1 -c copy -map 0 -reset_timestamps 1 "/Users/XXXX/Desktop/Test/%03d_test40.mov"

答案1

您有一个包含 2 个(或更多)流的文件,一个音频流和一个视频流。
查看图片,其中显示了使用 FFmpeg 选项的一些不同可能性:

在此处输入图片描述

  1. 所有流都从输入文件中解复用,然后直接复用到输出文件中。

  2. 如果您只有视频和音频流,则它与 1 相同。

  3. 视频流
    从输入文件中解复用,
    然后使用过滤器进行更改,
    然后复用到输出文件中。

    音频流仅从输入文件中解复用,然后复用到输出文件中。

如您所见,您使用了第 1情况和第 3情况中的选项,它们是不兼容的。
第 3情况是实现您的目标的合适情况。

答案2

更改-c copy-c:a copy。如果要过滤视频,则必须重新编码。

-shortest处理单个输入时会出现不寻常的情况,除非其中某些流比其他流长。

相关内容