我正在尝试删除电视节目rip的第一章。这个想法是有类似于netflix的东西,第一集将显示介绍然后连续剧集不会。
我已经使用ffprobe获取章节时间,然后使用此
手动完成for %%A IN (*.mp4) DO ffmpeg -ss <CHAPTERTIME> -i "%%A" -vcodec copy -acodec copy "tmp.mp4" && DEL "%%A" && RENAME "tmp.mp4" "%%A"
如何传递第一章时间码值,以便ffmepg知道在哪里寻找?
同时希望使用相同的值来偏移字幕,使它们在剪切后对齐。
注意:我正在进行切割的机器是Windows,但如果更容易,我可以使用我的FreeBSD服务器。
答案 0 :(得分:0)
这可能是最糟糕的做法,但至少它有效,仍然无法让它分批工作。
@setlocal enableextensions enabledelayedexpansion
@echo off
for %%A IN (*.mp4) DO ffprobe -show_chapters -print_format flat "%%A" > out.txt
for /f "tokens=* delims=" %%a in ('findstr /C:"chapters.chapter.1.start_time=" out.txt') do (
set S=%%a
set S=!S:~30,20!
echo !S!
)
for %%A IN (*.mp4) DO ffmpeg -ss !S! -i "%%A" -vcodec copy -acodec copy "tmp.mp4" && DEL "%%A" && RENAME "tmp.mp4" "%%A"
endlocal