私は4Kビデオからクリップを抽出してトランスコードする作業を進めています。 私は既にどこから始めるべきか、クリップの持続時間を知っています。私は必要クリップを抽出するために、以下のコマンドを使用していパイプでffmpeg -sseofを使用する
は、キーフレームを保持するビデオのために
ffmpeg -ss 30 -i 'input.mp4' -c copy -t 10 -f matroska 'output.mp4'
(ビデオに30秒、私は10秒のクリップを取る)、それを何を描くべきかを知っているので、クリップは10秒より長くなることがあります(これは期待されています)
次に、ビデオをトランスコードして最後の10秒しかかからないようにします(具体的にはsseof
コマンド)
ffmpeg -sseof -10 -i 'output.mp4' -vcodec libx264 -r 15 -s 720x400 -aspect 720:400 -sn -f matroska -acodec libmp3lame -ac 2 -ar 11025 -y 'transcoded.mkv'
ファイルシステムの速度が遅いため、抽出したクリップをディスクに書き込む最初のステップを避けたいと思います。パイプでこれを行い、その場でトランスコードすることができます。それだけで無効なビデオクリップファイルを作るよう ffmpeg -ss 30 -i 'input.mp4' -c copy -t 10 -f matroska pipe:1 | ffmpeg -i pipe:0 -vcodec libx264 -r 15 -s 720x400 -aspect 720:400 -sn -f matroska -acodec libmp3lame -ac 2 -ar 11025 -y 'transcoded.mkv'
は、しかし、パイプで私は、-sseof
コマンドを使用することはできません。 (ログからのエラーや警告はありません)
私の現在の解決策は、トランスコードされたビデオクリップを再びトランスコードし、最後の10秒間しかかかりません。 (しかし、これは貧弱な回避策であり、実際の解決策ではないようです)ffmpeg
と私が初めて作業したので、パイプを通してビデオの最後の10秒を取ることが可能かどうか疑問に思っていますか?それとも、誰かがもっと良い解決策を持っているかもしれませんか?
ですたとえそれをスキップするように設定されていても。 (あるいは、少なくともCPUを調べてその負荷を見ればそれは見えます)しかし、ファイルが '.mp4'の場合、期待通りに動作します。残念ながら私は3つのファイルタイプすべてを処理できる必要があります。 – Thrasd
TSとMKVで期待どおりに動作します。 – Mulvya
このファイルを入力[4ksamples](http://4ksamples.com/elysium-2013-2160p-1-minute-sample-footage/)として使用すると、 '-ss 0 'を設定すると約8秒かかりますが、' - ss 45'は私のマシン上で約14秒かかります。これは45秒をスキップするためのかなり大きな増加です。私は何か誤解しているのですか、それともこのように働くと思いますか? – Thrasd