#2691 MacOS输出时出错

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

输出时出错


=
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 ]

2026-01-16 15:51:56,713 - INFO - cmd=['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-i', '/Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/end.srt', '/Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/end.srt.ass']
2026-01-16 15:51:56,853 - INFO - [export_style] 警告:JSON 配置文件不存在: /Users/ywx/VideoTrans/pyvideotrans/videotrans/ass.json,跳过样式替换
2026-01-16 15:51:56,860 - 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/57992/f3441efb50/origin_audio.m4a']
2026-01-16 15:51:58,158 - INFO - cmd=['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads
......

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/57992/f3441efb50/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 @ 0xa8cc30380] No option name near 'end.srt.ass'
[AVFilterGraph @ 0xa8cc30380] Error parsing a filter description around:
[AVFilterGraph @ 0xa8cc30380] Error parsing filterchain 'subtitles=end.srt.ass' around:
Error opening output file /Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/laste_target.mp4.
Error opening output files: Invalid argument

2026-01-16 15:55:00,783 - WARNING - 回退: 硬件加速失败,将自动回退到 CPU 编码重试...
2026-01-16 15:55:00,789 - INFO - cmd=['ffmpeg', '-hide_banner', '-ignore_unknown', '-threads', '0', '-y', '-progress', '/Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/compose1768575300.634489.txt', '-i', '/Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/novoice.mp4', '-i', '/Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/origin_audio.m4a', '-map', '0:v', '-map', '1:a', '-c:v', 'libx265', '-c:a', 'copy', '-vf', 'subtitles=end.srt.ass', '-movflags', '+faststart', '-crf', '24', '-preset', 'veryfast', '-t', '1430.061000', '/Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/laste_target.mp4']
2026-01-16 15:55:00,826 - WARNING - FFmpeg 命令执行失败 (force_cpu=True)。
命令: ffmpeg -hide_banner -ignore_unknown -threads 0 -y -progress /Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/compose1768575300.634489.txt -i /Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/novoice.mp4 -i /Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/origin_audio.m4a -map 0:v -map 1:a -c:v libx265 -c:a copy -vf subtitles=end.srt.ass -movflags +faststart -crf 24 -preset veryfast -t 1430.061000 /Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/laste_target.mp4
错误: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/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/57992/f3441efb50/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]

[vost#0:0 @ 0xb88cf0300] Unknown encoder 'libx265'
[vost#0:0 @ 0xb88cf0300] Error selecting an encoder
Error opening output file /Users/ywx/VideoTrans/pyvideotrans/tmp/57992/f3441efb50/laste_target.mp4.
Error opening output files: Encoder not found

1 Replies

问题在于您的 MacOS 系统上缺少必要的视频编码器。从日志可以看出两个关键错误:

  1. 硬件编码失败:尝试使用 hevc_videotoolbox 时,subtitles 滤镜参数解析出错。
  2. 软件编码失败:回退到 CPU 编码 libx265 时,提示 Unknown encoder 'libx265',说明您的 ffmpeg 没有编译进 libx265 编码器。

解决方案:重新安装功能完整的 ffmpeg。

请按以下步骤操作:

  1. 卸载当前 ffmpeg (如果通过 Homebrew 安装):

    brew uninstall ffmpeg
  2. 安装带有完整编码支持的 ffmpeg

    brew install ffmpeg --with-x265 --with-libvpx --with-libvorbis --with-fdk-aac --with-opus
    • 如果上述命令因选项被弃用而失败,请使用以下命令安装包含所有常用功能的版本:

      brew install ffmpeg
    • 安装后,运行 ffmpeg -encoders | grep 265 检查 libx265 是否在列表中。
  3. 在 pyVideoTrans 中强制使用 CPU 编码
    由于硬件编码 (hevc_videotoolbox) 在嵌入字幕时可能存在问题,建议在软件内设置强制使用 CPU 编码。

    • 打开 pyVideoTrans。
    • 进入菜单栏:工具 -> 高级选项
    • 在“视频输出控制”区域,找到并勾选 “强制使用CPU软编码”
    • 点击“保存”并重启软件。

完成以上步骤后,再次尝试处理视频。软件将使用 libx264 (默认) 或 libx265 (如果已安装) 进行 CPU 编码,应该可以成功输出。

请查看更多参考文档:

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