web-dev-qa-db-ja.com

フレームを複製せずにビデオの速度とフレームレートを上げる方法

フレームレートが30 FPSの長いビデオを、フレームレートが60 FPSの200xタイムラプスに変換したい。私の唯一の問題は、avconvが出力内のフレームを1つおきに不必要に複製しているため、60 FPS出力が実質的に30 FPSになることです。すべてのフレームを一意にしたい。 200倍の速度向上と2倍のフレームレート向上では、フレームを複製する理由はありません。

たとえば、問題は、出力が1,1,21,21,41,41、...のようなソースフレームを使用していることです...フレーム1,11,21,31,41,51 ,.を使用したい場合。 。

これが私が使っているコマンドです:

avconv -i input_30fps.avi -vcodec h264 -an -r 60 -vf "setpts=(1/200)*PTS" output_200x_60fps.avi
7
Pilot_51

いつものように、助けを求める前にそれを理解しようと何時間も費やした後、私は自分が解決策を求めてから数分で見つけました。

Linux Mint、IIRC、がmpmpegを公式リポジトリからavconvを優先して削除したときだと私が思ったのは、avconvがffmpegのより良い代替品ではないことがわかった。とにかく、ffmpegが復活し、インストールして、フレームを複製しない同等のコマンドを見つけました。

ffmpeg -i input_30fps.avi -vcodec h264 -an -vf "fps=60, setpts=(1/200)*PTS" output_200x_60fps.avi
6
Pilot_51

はい、機能しなかった理由は、使用したコマンドが再生速度を上げるためではなく、ビデオの解像度を上げるために設計されているためです。

0
the_try_guy