将.avi转换为.gif与ffmpeg质量好和字幕 [英] Convert .avi to .gif with ffmpeg with good quality AND subtitles

查看:306
本文介绍了将.avi转换为.gif与ffmpeg质量好和字幕的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用ffmpeg将.avi转换为.gif,具有良好的质量字幕。

I want to use ffmpeg to convert .avi to .gif with good quality and subtitles.

现在,我使用这个脚本从质量将.avi转换为.gif:

Now, I use this script to convert from .avi to .gif with good quality:

ffmpeg -v warning -ss 10:00 -t 5 -i input.avi -vf "fps=15,scale=420:-1:flags=lanczos,palettegen" -y palette.png
ffmpeg -v warning -ss 10:00 -t 5 -i input.avi -i palette.png -lavfi "fps=15,scale=420:-1:flags=lanczos [x]; [x][1:v] paletteuse" -y output.gif

我生成一个调色板,然后使用它来输出gif。

I generate a palette and then using it to output the gif.

然后,我使用此脚本将字幕添加到 gif

Then I am using this script to add subtitles to gif:

ffmpeg -v warning -i output.gif -vf "ass=subtitles.ass" -y outputWithSubs.gif

所有这些都很好。问题是,第一个脚本给了我很好的质量,没有字幕,第二个给我没有质量好的字幕。

All that works just fine. The problem is that the first script gives me good quality without subtitles and the second gives me subtitles without good quality.

当我试图将它们与这个脚本结合起来时:

When I am trying to combine them with this script:

ffmpeg -v warning -ss 10:00 -t 5 -i input.avi -vf "fps=15,scale=420:-1:flags=lanczos,palettegen" -y palette.png
ffmpeg -v warning -ss 10:00 -t 5 -i input.avi -i palette.png -vf "ass=subtitles.ass" -lavfi "fps=15,scale=420:-1:flags=lanczos [x]; [x][1:v] paletteuse" -y output.gif

我收到此错误:

通过-vf / -af / -filter选项为输出流0:0指定了过滤器'ass = subtitles.ass',该输出流是从复杂的过滤器提供的。
-vf / -af / -filter和-filter_complex不能一起用于同一个流。

有没有办法我可以同时组合好的质量和字幕?

Is there any way that I could combine good quality and subtitles at the same time?

推荐答案

使用 -filter_complex ,而不是 -vf ,并在一个过滤器中进行所有过滤。

Use -filter_complex, not -vf, and do all of your filtering in one filtergraph.

ffmpeg -y -ss 10:00 -t 5 -i input.avi -filter_complex "fps=15,scale=420:-1:flags=lanczos,ass=subtitles.ass,palettegen" palette.png

ffmpeg -y -ss 10:00 -t 5 -i input.avi -i palette.png -filter_complex "fps=15,scale=420:-1:flags=lanczos,ass=subtitles.ass[x];[x][1:v]paletteuse" output.gif

这篇关于将.avi转换为.gif与ffmpeg质量好和字幕的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆