取り除く-to 10

取り除く-to 10

macOS でサムネイルを生成する ffmpeg コマンドをテストしたffmpeg -y -ss 0 -to 10 -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpegところ、正常に動作しましたが、Ubuntu 18.04.2 (AWS EC2) の ffmpeg で同じコマンドを実行するとエラーが発生しました。

エラー :

Option to (record or transcode stop time) cannot be applied to input url abc.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for input file abc.mp4.
Error opening input files: Invalid argument

私は AWS EC2 (ubuntu 18.04.2) を使用しており、sudo apt install ffmpeg を使用しました。別の方法でインストールする必要があるか、何かが足りないかなど、どなたか助けていただけないでしょうか。よろしくお願いします。

答え1

取り除く-to 10

  • 単一のフレームを出力するので、 で継続時間の停止時間を宣言する必要はありません-to。単一の画像には継続時間がないため、-toいずれにしても無視されます。
  • -ss(開始時間オフセット) の値が の場合0、何も行われないので、これも削除できます。

例:

    ffmpeg -y -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg

上記と同じですが、30 秒後にスクリーンショットを取得します。

    ffmpeg -y -ss 30 -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg

22 時間 15 分 5 秒のスクリーンショットを取得しますが、出力の品質は低くなります。

    ffmpeg -y -ss 22:15:05 -i acb.mp4 -q:v 5 -frames:v 1 abc.jpeg

必要に応じて、-q:vの代わりにエイリアスを使用することもできます。-qscale:v

なぜmacOSでは動作し、Ubuntuでは動作しないのか

この-toオプションは、以前は出力オプションのみでした。入力ファイルとしても機能するように更新されました ( の前に宣言されています-i)。使用している FFmpeg 3.4.6 は、-to入力オプションとして使用するには古すぎます。macOS 上の FFmpeg のバージョンは新しいため、入力オプションとして使用できます-to。ただし、前述のように、単一の画像を出力すると-to何も実行されず、無視されます。

こちらもご覧ください

関連情報