You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用FFmpeg为MP3转视频添加淡出歌词字幕遇报错求助

解决FFmpeg生成带淡出歌词字幕视频的报错问题

嘿,咱们来一步步排查你遇到的问题,先从命令里的明显错误入手:

1. 先修正命令里的语法错误

你的原命令里有两个关键的引号问题,这大概率是触发报错的直接原因:

  • 用了中文半角引号):FFmpeg只识别英文半角引号("'
  • 引号嵌套冲突:force_style的参数包裹方式不对,导致FFmpeg无法正确解析样式规则

2. 带淡出效果的修正命令

我把命令修正后,还加上了淡出效果的配置(FadeOut=1000代表1秒淡出,数值可以自己调整),你试试这个:

ffmpeg -loop 1 -y -i test.jpg -i test.mp3 -vf "subtitles=f=test.srt:force_style='FontName=Arial,FontSize=14,FadeOut=1000'" -shortest test1.mp4

3. 如果还是报错,排查这些点

结合你提到的FFmpeg版本(N-89940-gb1af0e23a3),再检查这几个可能的问题:

  • 确认FFmpeg编译了libass库:你的报错里有编译配置,看看是否包含--enable-libass——subtitles滤镜依赖这个库,如果没编译进去,要么重新编译FFmpeg并开启该选项,要么换一个预编译好带libass的版本
  • 检查SRT字幕格式是否标准:确保你的test.srt是正确的SRT格式,比如:
    1
    00:00:00,000 --> 00:00:03,000
    第一句歌词
    
    2
    00:00:03,500 --> 00:00:06,000
    第二句歌词
    
  • 字体是否存在:确认你的系统里安装了Arial字体,要是没有就换成系统自带的字体(比如Windows用“微软雅黑”,Linux用“Noto Sans”)
  • 文件路径是否正确:如果图片、音频、字幕文件不在当前命令执行的目录,要写完整的绝对路径,避免FFmpeg找不到文件

小补充

-shortest参数会让视频时长和MP3保持一致,-loop 1让图片循环播放,这些设置都是没问题的。要是觉得淡出速度不合适,直接修改FadeOut的数值就行,比如FadeOut=500就是0.5秒完成淡出。

内容的提问来源于stack exchange,提问作者user7179690

火山引擎 最新活动