web-dev-qa-db-ja.com

ffmpeg / mencoderで動画をシーク可能にする方法

メンコーダーとffmpegを使用して、1つの画像上で音楽を再生するビデオを作成しています。ビデオは正常に再生されますが、私はまったく検索できません。 -idx、さらに-forceidxを使用してそれらを生成し、mencoderを使用してkeyintを生成しようとしましたが、動作させることができませんでした。 ffmpegでこれについて見た唯一のオプションはforce_key_framesでしたが、毎回明示的に設定する必要があるようです。

これがトーテムで動作するように具体的にしたいです。 Totemでシークしようとすると、ビデオが再起動します。 mencoder/ffmpegで処理された他のビデオを探して、別のソースのビデオから始めました。私は画像から作成しているこれらのビデオに問題があるだけです。

私が使用している基本的なエンコードコマンドは次のとおりです。

mencoder "mf://image.jpg" -mf w=480:h=360:type=jpg -o mencoder_out.avi -ovc lavc -lavcopts vcodec=mpeg4:aspect=4/3:keyint=30 -audiofile music.mp3 -oac copy -fps 1/300.0 -ofps 30 -idx

そして

ffmpeg -i image.jpg -i music.mp3 -acodec copy ffmpeg_out.avi

メンコーダーでは、別のパスを使用してキーフレームを追加しようとしました。

mencoder -idx mencoder_out.avi -o mencoder_indexed.avi -ovc copy -oac copy
  • 注:メンコーダーでは、通常vbitrateやmbdなどの他のlavcoptsを追加しますが、私が知る限り、この問題に影響を与えるものはありません。
2
Tim

私はffmpegのためにそれを考え出した。次のように、画像の入力オプションとして-f imageを追加しました。

-f image2 -i image.jpg

superuser で間接的に答えを見つけました。彼の-loop_input -shortestのヒントも非常に役立ちました。

1
Tim