#2692 ffmpeg 字幕滤镜路径问题

2a02:8071* Posted at: 3 hours ago 👁11

2026-01-16 16:13:40,087 - INFO - cmd=['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-i', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/end.srt', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/end.srt.ass']
2026-01-16 16:13:40,275 - INFO - [export_style] 警告:JSON 配置文件不存在: /Users/ywx/VideoTrans/pyvideotrans/videotrans/ass.json,跳过样式替换
2026-01-16 16:13:40,281 - INFO - cmd=['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-i', '/Users/ywx/Library/Application Support/me.Him188.Ani/media-downloads/anitorrent/pieces/115763097/oshi3.mkv', '-vn', '-c:a', 'copy', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/origin_audio.m4a']
2026-01-16 16:13:41,608 - INFO - cmd=['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-i', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/novoice.mp4', '-vf', 'tpad=stop_mode=clone:stop_duration=0.007', '-c:v', 'libx264', '-crf', '24', '-preset', 'veryfast', '-an', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/final_video_with_freeze_lastend.mp4']
2026-01-16 16:16:48,025 - INFO - 视频定格应延长7ms,实际向上取整秒延长0.007s,操作成功。
2026-01-16 16:16:48,510 - INFO - cmd=['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-progress', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/compose1768576608.481083.txt', '-i', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/novoice.mp4', '-i', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/origin_audio.m4a', '-map', '0:v', '-map', '1:a', '-c:v', 'libx264', '-c:a', 'copy', '-vf', 'subtitles=end.srt.ass', '-movflags', '+faststart', '-crf', '24', '-preset', 'veryfast', '-t', '1430.061000', '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/laste_target.mp4']
2026-01-16 16:16:48,569 - WARNING - FFmpeg 命令执行失败 (force_cpu=True)。
命令: ffmpeg -hide_banner -ignore_unknown -threads 0 -y -progress /Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/compose1768576608.481083.txt -i /Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/novoice.mp4 -i /Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/origin_audio.m4a -map 0:v -map 1:a -c:v libx264 -c:a copy -vf subtitles=end.srt.ass -movflags +faststart -crf 24 -preset veryfast -t 1430.061000 /Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/laste_target.mp4
错误: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/novoice.mp4':
Metadata:

major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf62.3.100

Duration: 00:23:50.06, start: 0.000000, bitrate: 1414 kb/s
Stream #0:00x1: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 1411 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)

Metadata:
  handler_name    : VideoHandler
  vendor_id       : [0][0][0][0]
  encoder         : Lavc62.11.100 libx264

Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/origin_audio.m4a':
Metadata:

major_brand     : M4A 
minor_version   : 512
compatible_brands: M4A isomiso2
encoder         : Lavf62.3.100

Duration: 00:23:50.07, start: 0.000000, bitrate: 197 kb/s
Stream #1:00x1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 194 kb/s (default)

Metadata:
  handler_name    : SoundHandler
  vendor_id       : [0][0][0][0]

[AVFilterGraph @ 0xb82c07f80] No option name near 'end.srt.ass'
[AVFilterGraph @ 0xb82c07f80] Error parsing a filter description around:
[AVFilterGraph @ 0xb82c07f80] Error parsing filterchain 'subtitles=end.srt.ass' around:
Error opening output file /Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/laste_target.mp4.
Error opening output files: Invalid argument


=
system:macOS-26.1-arm64-arm-64bit
version:v3.91
frozen:False
language:zh
root_dir:/Users/ywx/VideoTrans/pyvideotrans
Python: 3.10.19 (main, Jan 13 2026, 17:48:23) [Clang 21.1.4 ]

3 Replies

问题出在 FFmpeg 的 subtitles 滤镜路径引用错误。日志显示命令中使用了 subtitles=end.srt.ass,但 FFmpeg 要求提供字幕文件的完整绝对路径

解决方法:

  1. 临时方案(针对当前任务):

    • 在软件处理过程中,如果再次弹出此错误,可以尝试手动指定完整路径。但通常需要修改代码逻辑。
  2. 根本解决方案(推荐):
    这是一个已知的软件路径处理 Bug。请按以下步骤操作:

    • 升级软件:前往官网下载并安装最新版本的 pyVideoTrans。开发者通常会在后续版本中修复此类路径问题。
    • 检查工作目录:确保你的视频文件所在路径没有包含特殊符号、中文字符或过长的目录名。尽量使用简单的英文路径,例如 /Users/ywx/Videos/
    • 以源码模式运行(高级用户):如果你是通过 git clone 源码运行,请确保已更新到最新代码 (git pull),并重新安装依赖。

操作后验证:
完成上述步骤后,重新启动软件并尝试处理视频。如果问题依旧,请提供 videotrans/logs/ 目录下最新的完整日志文件以便进一步分析。

请查看更多参考文档:

所以我只能等待修复

不完全正确。虽然这是一个已知的路径处理问题,但你可以立即尝试以下有效且直接的解决方案

核心问题:FFmpeg 的 subtitles 滤镜在 macOS 上处理相对路径时存在兼容性问题。日志中 subtitles=end.srt.ass 应该使用文件的绝对路径

立即生效的解决方案

  1. 修改视频源文件路径

    • 将你的视频文件 oshi3.mkv 移动到更简单、更短的目录
    • 最佳实践:在用户主目录下创建一个纯英文、无空格的新文件夹,例如 /Users/ywx/VideoTrans/input/
    • 将视频文件移动到此新目录,然后在软件中重新选择这个新路径下的视频文件进行处理
  2. 清理缓存并重试

    • 在软件主界面,务必勾选“清理已生成”选项
    • 然后重新开始翻译任务。软件会重新生成所有临时文件,包括字幕文件,这次可能会生成正确的绝对路径。
  3. (如果上述无效)手动干预(高级)
    如果错误再次出现,并且你可以在临时文件夹 (/Users/ywx/VideoTrans/pyvideotrans/tmp/59650/fb89436479/) 中找到 end.srt.ass 文件,你可以:

    • 在FFmpeg命令失败后,不要关闭错误窗口
    • 手动复制 end.srt.ass完整绝对路径
    • 理论上,软件应该自动使用绝对路径。如果它仍然使用相对路径,这确实是一个需要开发者修复的Bug。

总结:你不需要被动等待。首先尝试将视频文件移动到更简单、更短的根目录路径下(这是解决大多数FFmpeg路径问题的通用方法),并确保勾选“清理已生成”后重试。 这很可能立即解决问题。

如果移动文件并清理缓存后问题依旧,那么这很可能是一个特定于你当前版本 (v3.91) 在 macOS 上的 Bug。此时,你可以选择等待新版修复,或者尝试从源码运行最新开发版。

请查看更多参考文档:

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Donate: https://ko-fi.com/jianchang512

Trending Questions