2011-07-23 49 views
1

再生時に特定のフレームにスキップするビデオシーケンスがあります(私のプレーヤーはiOSのAVPlayerを使用して実装されていますが、それは付随的です)。これらのフレームは予測できない間隔で落ちるので、ほとんどのビデオエンコーダに標準の「Nフレーム/秒ごとのキーフレーム」機能を使用することはできません。しかし、私は目標フレームを事前に知っています。エンコード時にカスタムH.264イントラフレーム(キーフレーム)を強制するか?

これをできるだけ効率的にスキップするには、エンコード時にターゲットフレームを強制的にiフレームにする必要があります。理想的には、フレームにスクラブしてキーフレームとしてマークしてから、自分のビデオを(再)エンコードするGUIのようなものがあります。

このツールを使用できない場合は、libavcodecを使用してカスタムエンコーダをローリングすることでこれを行う可能性がありますが、私はむしろ上位の(そして好ましくはスクリプト可能な)ツールを使用してジョブを行いますGUIが不可能な場合これはffmpegやmencoderのような仕事ですか?

誰かがこれを行う手法はありますか?また、h.264コーデックの根本的な無知のために、これは不可能な作業である可能性があります。もしそうなら、私を正しく置いてください。

答えて

1

は自分の質問に答えた:それはAppleのコンプレッサーでカスタム圧縮キーフレームを設定することが可能です。

圧縮マーカーは、手動圧縮マーカーとも呼ばれます。これは、Final Cut Proシーケンス(または「Compressor Preview」ウィンドウ)に追加して、Compressorが圧縮中にMPEG Iフレームを生成する必要があることを示すマーカーです。

Source

0

セクション間をジャンプするためにチャプターマーカーを使用できませんか?理想的な解決策ではありませんが、実現するのはずっと簡単です。

あなたはこのソフトウェアを使用することができます。 http://www.applesolutions.com/bantha/MH.html

+0

ありがとうございます。しかし、私はマーカーとしてキーフレームを使用しようとしているわけではありません。プレーヤーが効率的にジャンプするためには、iフレームでなければなりません。これは最初の質問では不明で、修正するために編集しました。 –

2

ffmpegには、一連の任意のタイムスタンプとフレームを指定する他の方法を受け入れる、-force_key_framesオプションがあります。 documentation

-force_key_frames 0:05:00,... 
関連する問題