将褪色文本与重新编码视频结合在一起

时间:2020-08-06 11:25:36

标签: ffmpeg

我想重新编码视频,然后将淡入淡出的文本放在结果视频上。这两个部分都分开工作,但是当我将它们放在一起时,我会得到错误

Filtergraph 'scale=1280:720:force_original_aspect_ratio=decrease,setsar=1:1,pad=1280:720:(ow-iw)/2:(oh-ih)/2' 
was specified through the -vf/-af/-filter option for output stream 0:0, which is fed from a complex filtergraph.
-vf/-af/-filter and -filter_complex cannot be used together for the same stream.

ffmpeg -i inputtest.mp4 -vcodec libx264 -crf 27 -preset veryfast -vf vscale=1280:720:force_original_aspect_ratio=decrease,setsar=1:1,pad=1280:720:(ow-iw)/2:(oh-ih)/2" \
    -filter_complex \
        "color=black@0:100x100,format=yuva444p[c]; [c][0]scale2ref[ct][mv0]; [ct]setsar=1,split=3[t1][t2][t3]; \
        [t1]drawtext=fontfile= Helvetica 400.ttf:text=\'Test1\':fontsize=40:fontcolor=white,fade=t=in:st=1:d=1:alpha=1,fade=t=out:st=5:d=1:alpha=1[txta1]; \
        [t2]drawtext=fontfile= Helvetica 400.ttf:text=\'Test2\':fontsize=40:fontcolor=white,fade=t=in:st=1:d=1:alpha=1,fade=t=out:st=10:d=1:alpha=1[txta2]; \
        [t3]drawtext=fontfile= Helvetica 400.ttf:text=\'Test3\':fontsize=40:fontcolor=white,fade=t=in:st=1:d=1:alpha=1,fade=t=out:st=15:d=1:alpha=1[txta3]; \
        [mv0][txta1]overlay=x=\'100\':y=\'200\':shortest=1[mv1]; \
        [mv1][txta2]overlay=x=\'300\':y=\'200\':shortest=1[mv2]; \
        [mv2][txta3]overlay=x=\'500\':y=\'200\':shortest=1" \
    output.mp4

对我可以做些什么的任何想法?如果没有别的办法,我可以将这两个命令分开,但我认为放在一起可以使编码更有效。

1 个答案:

答案 0 :(得分:0)

视频的缩放必须在与文字叠加层相同的过滤图中进行。我已经在任何叠加层下面添加了它。 scale2ref已调整为使用重新缩放的输入。

ffmpeg -i inputtest.mp4 -vcodec libx264 -crf 27 -preset veryfast \
    -filter_complex \
        "[0]scale=1280:720:force_original_aspect_ratio=decrease,setsar=1:1,pad=1280:720:(ow-iw)/2:(oh-ih)/2[v];color=black@0:100x100,format=yuva444p[c]; [c][v]scale2ref[ct][mv0]; [ct]setsar=1,split=3[t1][t2][t3]; \
        [t1]drawtext=fontfile= Helvetica 400.ttf:text=\'Test1\':fontsize=40:fontcolor=white,fade=t=in:st=1:d=1:alpha=1,fade=t=out:st=5:d=1:alpha=1[txta1]; \
        [t2]drawtext=fontfile= Helvetica 400.ttf:text=\'Test2\':fontsize=40:fontcolor=white,fade=t=in:st=1:d=1:alpha=1,fade=t=out:st=10:d=1:alpha=1[txta2]; \
        [t3]drawtext=fontfile= Helvetica 400.ttf:text=\'Test3\':fontsize=40:fontcolor=white,fade=t=in:st=1:d=1:alpha=1,fade=t=out:st=15:d=1:alpha=1[txta3]; \
        [mv0][txta1]overlay=x=\'100\':y=\'200\':shortest=1[mv1]; \
        [mv1][txta2]overlay=x=\'300\':y=\'200\':shortest=1[mv2]; \
        [mv2][txta3]overlay=x=\'500\':y=\'200\':shortest=1" \
    output.mp4
相关问题