ffmpeg からの不完全な出力をフラグ付けする

ffmpeg からの不完全な出力をフラグ付けする

FFMPEG を使用して多数のファイルを変換するスクリプトがあります。これを停止すると、現在出力中のファイルは不完全な状態のままになります。

中止された変換を簡単に識別できるように、FFMPEG で一時ファイル (FILENAME_incomplete など) に書き込む方法はありますか?

答え1

手動で中止する場合、ffmpeg 自体には進行状況の概念がないため、これは実装されません。出力が 200 秒長くなることを認識していないため、100 秒で停止すると、処理は不完全になります。

ffmpeg がエラーのために停止した場合、終了コードは 0 より大きくなります。そのため、それをキャッチして、対応する出力ファイルを削除できます。

答え2

エラー コードを読み取るのも 1 つの方法ですが、端末が強制終了された場合など、安全とは言えません。

出力ファイルに のような名前を付けて、スクリプトの のFilename.incomplete.mpeg後の行で終了コード (スクリプトの場合) が 0 であることを確認します。その場合、正常に完了したとみなされ、ファイルの名前を に変更できます。ffmpeg$?bashffmpegFilename.mpeg

また、破損していない出力には破損したタイムラインがあることにも気付きました。出力ファイルが完全であることを確認する方法はおそらくあります ( ffprobemaybe を使用)。

関連情報