FFmpeg ネガティブフレームを削除する

FFmpeg ネガティブフレームを削除する

私は、負の開始時間を持つビデオを扱うために FFmpeg を使用しています。

$ ffmpeg -i test.mp4 -ss 0 out.mp4
...
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp41mp42isom
    creation_time   : 2018-01-03 11:35:13
  Duration: 00:00:06.16, start: -1.238906, bitrate: 1425 kb/s
...
Output #0, mp4, to 'out.mp4':
...
frame=  222 fps=0.0 q=-1.0 Lsize=     166kB time=00:00:07.44 bitrate= 182.9kbits/s

ビデオを時間 0 でカットする方法はありますか? つまり、出力の継続時間は 7.74 ではなく 6.16 である必要があります。-avoid_negative_tsさまざまな値に設定してみました。 もちろん、手動で負の値を読み取り、 を使用して正しいオフセットで再度実行することもできます-ssが、自動ソリューションを探しています。

答え1

通常、-ss入力オプションはファイルの先頭からの相対オフセットとして機能します。開始時刻が負で事前に不明なため、seek_timestamp絶対タイムスタンプ値へのシークを有効にすることができます。

ffmpeg -seek_timestamp 1 -ss 0 -i test.mp4 out.mp4

関連情報