2017-01-06 3 views
-1

私はテレビ番組リッピングの最初のチャプタを削除しようとしています。アイデアはnetflixに似たものを持つことです。最初のエピソードではイントロが表示され、連続したエピソードでは表示されません。ffmpegを使用して最初のチャプタを切り取ります。

私はffprobeとチャプターの時間を取得してきた後、ffmepgがどこに求めることを知っているので、私は最初の章のタイムコード値を渡すにはどうすればよいこの

for %%A IN (*.mp4) DO ffmpeg -ss <CHAPTERTIME> -i "%%A" -vcodec copy -acodec copy "tmp.mp4" && DEL "%%A" && RENAME "tmp.mp4" "%%A" 

で手動でやって?

また、同じ値を使用して字幕をオフセットして、字幕を切り取った後に整列させたいと考えています。

注:私が切っているのはウィンドウですが、それが簡単な場合はFreeBSDサーバーを使用できます。

答えて

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 
関連する問題