web-dev-qa-db-ja.com

ffmpegはaviを既知のフレームレートのフレームに分割します

this related thread にコメントとして投稿しました。しかし、彼らは気づかれていないようです=(

私は使いました

ffmpeg -i myfile.avi -f image2 image-%05d.bmp

myfile.avi.bmpファイルとして保存されたフレームに分割します。それはかなりではないことを除いて動作するように見えました。ビデオを録画するとき、1000fpsのレートで録画したところ、ビデオの長さが2min29secであることがわかりました。私の計算が正しければ、ビデオ全体で合計149,000フレームになります。しかし、私が走ったとき

ffmpeg -i myfile.avi -f image2 image-%05d.bmp

4472ファイルしか取得しませんでした。オリジナルの149kフレームを入手するにはどうすればよいですか?

私も元のAVIのフレームレートを1000fpsに変換してみました

ffmpeg -i myfile.avi -r 1000 otherfile.avi

しかし、これは私の懸念を解決するようには見えませんでした。

21
Myx
ffmpeg -i myfile.avi -r 1000 -f image2 image-%07d.png

150kのbmpファイルを出力するのが良いとは思いません。おそらくpngで十分でしょうか?

36
Dat Chu

数学のパート1はすばらしいです。2分29秒は約149秒です。 1000 fpsで149000フレームになります。ただし、出力ファイル名は、149000が6桁の場合、5桁しかありません。したがって、「image-%06d.bmp」を試してください。

次に、ディスクサイズがあります。画像はディスクに収まりますか? bmpでは、すべての画像が独自のサイズを使用します。 jpeg画像を使用すると、約10倍圧縮されます。

別のアイデア:ffmpegが(妥当な)フレームレートを見つけられない場合、毎秒25または30フレームに低下します。それを指定する必要があるかもしれません。ソースとターゲットの両方でこれを行うには、manページ(UNIXではman ffmpeg)を参照してください。

   To force the frame rate of the input file (valid for raw formats
   only) to 1 fps and the frame rate of the output file to 24 fps:
           ffmpeg -r 1 -i input.m2v -r 24 output.avi

それだけの価値があるので、私はffmpeg -y -i "video.mpg" -sameq "video.%04d.jpg"を使用してビデオを写真に分割しています。 -sameqはjpegを妥当な品質で強制することであり、-yは上書き質問を許可しないことです。あなたのために:

ffmpeg -y -r 1000 -i "myfile.avi" -sameq "image。%06d.jpg"

12
CBee

ここでは誤解があると思います。HSビデオシステムの出力の出力フレームレートは1000 fpsとは考えられませんが、30(または50/60)fpsとかなり標準的なものです。ほとんどのビデオプレーヤーにこの種の速度で過負荷をかけることとは別に、シーケンスを記録されたのと同じ速度で表示すると逆効果になります。基本的に:1秒@ 1000 fps入力は33秒@ 30 fps出力のようなものです。

シーンの継続時間は実際には2:29分(結果としてビデオは通常のレートで約82分)記録されましたか、それとも約4.5秒(4472フレーム)かかりましたか?通常の再生では2:29分ですか?

0
Kalliope