使用具有高质量和字幕的 ffmpeg 将 .avi 转换为 .gif
Convert .avi to .gif with ffmpeg with good quality AND subtitles
我想使用 ffmpeg 将 .avi 转换为具有高质量 和 字幕的 .gif。
现在,我使用此脚本将 .avi 转换为 .gif,质量质量好:
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。
然后我使用这个脚本将字幕添加到gif:
ffmpeg -v warning -i output.gif -vf "ass=subtitles.ass" -y outputWithSubs.gif
一切正常。问题是第一个脚本给了我没有字幕的高质量,第二个给了我没有高质量的字幕。
当我尝试将它们与此脚本结合使用时:
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
我收到这个错误:
Filtergraph 'ass=subtitles.ass' 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.
有什么办法可以同时兼顾画质和字幕吗?
使用-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
我想使用 ffmpeg 将 .avi 转换为具有高质量 和 字幕的 .gif。
现在,我使用此脚本将 .avi 转换为 .gif,质量质量好:
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。
然后我使用这个脚本将字幕添加到gif:
ffmpeg -v warning -i output.gif -vf "ass=subtitles.ass" -y outputWithSubs.gif
一切正常。问题是第一个脚本给了我没有字幕的高质量,第二个给了我没有高质量的字幕。
当我尝试将它们与此脚本结合使用时:
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
我收到这个错误:
Filtergraph 'ass=subtitles.ass' 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.
有什么办法可以同时兼顾画质和字幕吗?
使用-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