#4989 TaskCfgVTT(uuid='7d122abc39', name='F:/music/moledic/【电子音乐】如何写旋律-p01-80.mp4', dirname='F:/music/moledic', noextname='【电子

202.184* Posted at: 5 hours ago

合并阶段出错 opening input: Invalid data found when processing input opening input file D:/pyvid/tmp/26040/7d122abc39/end-edit.srt. opening input files: Invalid data found when processing input
Traceback (most recent call last):

File "videotrans\util\help_ffmpeg.py", line 59, in runffmpeg

File "subprocess.py", line 526, in run

subprocess.CalledProcessError: Command '['ffmpeg', '-hide_banner', '-nostdin', '-ignore_unknown', '-threads', '0', '-y', '-i', 'D:/pyvid/tmp/26040/7d122abc39/end-edit.srt', 'D:/pyvid/tmp/26040/7d122abc39/end.ass']' returned non-zero exit status 3199971767.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

File "videotrans\task\job.py", line 35, in run

File "videotrans\task\job.py", line 195, in process_task

File "videotrans\task\trans_create.py", line 709, in assembling

File "videotrans\task\trans_create.py", line 1259, in _join_video_audio_srt

File "videotrans\task\trans_create.py", line 1152, in _process_subtitles

File "videotrans\util\help_srt.py", line 281, in set_ass_font

File "videotrans\util\help_ffmpeg.py", line 88, in runffmpeg

videotrans.configure.excepts.FFmpegError: opening input: Invalid data found when processing input opening input file D:/pyvid/tmp/26040/7d122abc39/end-edit.srt. opening input files: Invalid data found when processing input
TaskCfgVTT(uuid='7d122abc39', name='F:/music/moledic/【电子音乐】如何写旋律-p01-80.mp4', dirname='F:/music/moledic', noextname='【电子音乐】如何写旋律-p01-80', basename='【电子音乐】如何写旋律-p01-80.mp4', ext='mp4', target_dir='F:/yifanyi/melodc/【电子音乐】如何写旋律-p01-80-mp4', cache_folder='D:/pyvid/tmp/26040/7d122abc39', is_cuda=True, source_language='英语', source_language_code='en', source_sub='F:/yifanyi/melodc/【电子音乐】如何写旋律-p01-80-mp4/en.srt', source_wav='D:/pyvid/tmp/26040/7d122abc39/en.wav', source_wav_output='F:/yifanyi/melodc/【电子音乐】如何写旋律-p01-80-mp4/en.m4a', target_language='简体中文', target_language_code='zh-cn', target_sub='F:/yifanyi/melodc/【电子音乐】如何写旋律-p01-80-mp4/zh-cn.srt', target_wav='D:/pyvid/tmp/26040/7d122abc39/target.wav', target_wav_output='F:/yifanyi/melodc/【电子音乐】如何写旋律-p01-80-mp4/zh-cn.m4a', translate_type=4, tts_type=1, volume='+0%', pitch='+0Hz', voice_rate='+0%', voice_role='No', voice_autorate=True, video_autorate=False, remove_silent_mid=False, align_sub_audio=True, detect_language='en', recogn_type=1, model_name='large-v3', shibie_audio=None, remove_noise=False, enable_diariz=False, nums_diariz=0, rephrase=1, fix_punc=False, subtitle_language=None, app_mode='biaozhun', subtitles='', targetdir_mp4='F:/yifanyi/melodc/【电子音乐】如何写旋律-p01-80-mp4/【电子音乐】如何写旋律-p01-80.mp4', novoice_mp4='D:/pyvid/tmp/26040/7d122abc39/novoice.mp4', is_separate=False, embed_bgm=True, instrument=None, vocal='D:/pyvid/tmp/26040/7d122abc39/vocal.wav', clear_cache=True, background_music='', subtitle_type=1, only_out_mp4=True, recogn2pass=True, output_srt=0, copysrt_rawvideo=False, loop_backaudio=1, backaudio_volume=0.8)


=
system:Windows-10-10.0.19045-SP0
version:v4.01
frozen:True
language:zh
root_dir:D:/pyvid

3 Replies

错误原因:end-edit.srt 文件格式被 FFmpeg 判定为无效(Invalid data found when processing input),无法将其转换为 ASS 字幕文件。这通常是因为该 SRT 文件内容为空、编码异常或包含非标准字符。


解决方案

  1. 清理缓存,强制重新生成字幕
    在主界面勾选 清理已生成,重新启动任务。这将删除旧的缓存结果,强制从头生成完整的 SRT 字幕文件。
  2. 简化视频文件路径和名称
    你的视频路径 F:/music/moledic/【电子音乐】如何写旋律-p01-80.mp4 包含中文、特殊符号(【】)和空格,这些字符在 FFmpeg 命令行中可能导致解析异常。

    • 建议:将视频文件重命名为纯英文+数字,例如 melody-01-80.mp4,并放置在浅层目录(如 D:/videos/)后重新处理。
  3. 检查字幕文件是否为空或损坏
    打开输出目录 F:/yifanyi/melodc/【电子音乐】如何写旋律-p01-80-mp4/,查看 en.srtzh-cn.srt 文件。如果文件大小为 0 字节或内容乱码,请按照第 1 步清理后重试。
  4. 暂时关闭“二次识别”
    你启用了 二次识别(recogn2pass=True),该功能会再次转录配音并生成新字幕。如果这一步生成的 end-edit.srt 出错,可以尝试先关闭 二次识别,等基础流程通过后再单独调整字幕。

如果以上操作后仍然报错,请提供 D:/pyvid/logs/ 目录下最新的日志文件(复制底部约 30 行内容),以便进一步分析。

请查阅相关文档:

[DEBUG] The file info after process:result={'video_fps': 30.0, 'r_frame_rate': '30/1', 'video_codec_name': 'h264', 'audio_codec_name': 'aac', 'width': 1920, 'height': 1080, 'time': 1759400, 'streams_len': 2, 'streams_audio': 1, 'video_streams': 1, 'color': 'yuv420p'}
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p39-80.mp4 -an -c:v copy novoice.mp4

[DEBUG] The file info after process:result={'video_fps': 30.0, 'r_frame_rate': '30/1', 'video_codec_name': 'h264', 'audio_codec_name': 'aac', 'width': 1920, 'height': 1080, 'time': 2350333, 'streams_len': 2, 'streams_audio': 1, 'video_streams': 1, 'color': 'yuv420p'}
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p40-80.mp4 -an -c:v copy novoice.mp4

......
tdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p43-80.mp4 -an -c:v copy novoice.mp4

[DEBUG] The file info after process:result={'video_fps': 30.0, 'r_frame_rate': '30/1', 'video_codec_name': 'h264', 'audio_codec_name': 'aac', 'width': 1920, 'height': 1080, 'time': 479733, 'streams_len': 2, 'streams_audio': 1, 'video_streams': 1, 'color': 'yuv420p'}
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p44-80.mp4 -an -c:v copy novoice.mp4

[DEBUG] The file info after process:result={'video_fps': 30.0, 'r_frame_rate': '30/1', 'video_codec_name': 'h264', 'audio_codec_name': 'aac', 'width': 1728, 'height': 1080, 'time': 503300, 'streams_len': 2, 'streams_audio': 1, 'video_streams': 1, 'color': 'yuv420p'}
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p45-80.mp4 -an -c:v copy novoice.mp4

[DEBUG] The file info after process:result={'video_fps': 30.0, 'r_frame_rate': '30/1', 'video_codec_name': 'h264', 'audio_codec_name': 'aac', 'width': 1728, 'height': 1080, 'time': 1281233, 'streams_len': 2, 'streams_audio': 1, 'video_streams': 1, 'color': 'yuv420p'}
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p46-80.mp4 -an -c:v copy novoice.mp4

[DEBUG] The file info after process:result={'video_fps': 30.0, 'r_frame_rate': '30/1', 'video_codec_name': 'h264', 'audio_codec_name': 'aac', 'width': 1728, 'height': 1080, 'time': 1009533, 'streams_len': 2, 'streams_audio': 1, 'video_streams': 1, 'color': 'yuv420p'}
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p47-80.mp4 -an -c:v copy novoice.mp4

[DEBUG] The file info after process:result={'video_fps': 23.976023976023978, 'r_frame_rate': '24000/1001', 'video_codec_name': 'h264', 'audio_codec_name': 'aac', 'width': 1080, 'height': 1080, 'time': 42917, 'streams_len': 2, 'streams_audio': 1, 'video_streams': 1, 'color': 'yuv420p'}
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i F:/music/moledic/【电子音乐】如何写旋律-p48-80.mp4 -an -c:v copy novoice.mp4

[DEBUG] openai-whisper模式下,对large-v3模型返回的断句结果重新后修正
[DEBUG] 断句结果重新修正结束
[DEBUG] [新进程任务 结束:STT use large-v3],耗时25.881072282791138s
[DEBUG] 开始移除每条字幕末尾标点
[DEBUG] LLM重新断句:self.ainame='deepseek',model_name='deepseek-v4-flash',api_url='https://api.deepseek.com/v1/'
[INFO] Starting call to 'videotrans.translator._openaicompat.OpenAICampat.llm_segment.._send', this is the 1st time calling it.
[DEBUG] 新进程执行结束结束timeout=12

从你提供的日志来看,这段内容只显示了批量视频预处理和语音识别阶段的正常运行日志(包括 FFmpeg 提取无声视频、openai-whisper 识别、LLM 重新断句等),并没有出现合并阶段的错误。你之前遇到的 end-edit.srt 无效问题,可能是在后续某个视频(如 p39-p48 中的某一个)的“二次识别”或“字幕嵌入”阶段发生的,但当前日志未捕捉到那段报错。

建议操作

  1. 确认具体出错的视频:请检查 logs/ 目录下与你上次报错时间对应的完整日志文件(按日期命名),搜索 Invalid data found when processing inputend-edit.srt,找到出错的具体视频文件名。
  2. 针对该视频独立处理

    • 将该视频文件移出原文件夹(避免批量干扰)。
    • 重命名为纯英文+数字(如 p39-80.mp4)。
    • 在软件主界面只加载这一个视频,勾选“清理已生成”,暂时关闭“二次识别”,然后重新执行。
  3. 检查 end-edit.srt 文件
    如果视频处理到合并阶段仍然报错,请打开输出目录(例如 F:/yifanyi/.../p39-80-mp4/),查看 end-edit.srt 文件是否为空或包含乱码。若为空,说明二次识别步骤生成的字幕无效,建议暂时关闭“二次识别”,或改用更稳定的语音识别渠道(如 faster-whisper)。
  4. 如果问题依然存在:请提供完整的最新日志文件(至少包含从开始处理到报错结束的 30 行错误信息),以便定位具体是哪一步异常。
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. Dondate: ko-fi.com/jianchang512

Related resource