iOSで、変更可能なフレームレートとクリップされた入力MOVファイルを再エンコードしようとしています。このように見て、実行時に出て来ることAVAssetWriterを使用してH264 movファイルを再エンコードする - フレームレートを設定する方法は?
NSMutableDictionary* compressionPropertiesDict = [NSMutableDictionary new];
compressionPropertiesDict[AVVideoProfileLevelKey] = AVVideoProfileLevelH264High40;
if(self.fps > 0) {
compressionPropertiesDict[AVVideoAverageNonDroppableFrameRateKey] = [NSNumber numberWithInt:self.fps];
_sessionMgr.videoSettings = @
{
AVVideoCodecKey: AVVideoCodecH264,
AVVideoWidthKey: [NSNumber numberWithFloat:self.outputSize.width],
AVVideoHeightKey: [NSNumber numberWithFloat:self.outputSize.height],
AVVideoCompressionPropertiesKey: compressionPropertiesDict,
};
::私はAVAssetWriterは少しこのようにビデオのプロパティを設定する必要があり、現時点での終わりに
videoSettings =
{
AVVideoCodecKey = avc1;
AVVideoCompressionPropertiesKey = {
AverageNonDroppableFrameRate = 15;
ProfileLevel = "H264_High_4_0";
};
AVVideoHeightKey = 960;
AVVideoWidthKey = 640;
}
、私はNSInvalidArgumentException: "Compression property AverageNonDroppableFrameRate is not supported for video codec type avc1"
でクラッシュを取得します。 (シミュレータを使用した単体テストで)
iOS、AVVideoCodecH264/"avc1"で使用できるコーデックタイプは1つだけです。他のプロジェクトではAVVideoAverageNonDroppableFrameRateKey
が使用されています。実際には、SDAVAssetExportSessionを使用しています。そのコードベースでは、このキーを明示的に使用しています。だから私はフレームレートを設定するには、このキーを使用する方法が必要があると思っただろうか?
私も代わりAVVideoMaxKeyFrameIntervalKey
を使用してビットを試してきましたが、それは常に低く(誰もが異なる設定で私を助けることができる、要約する、だから... ...全く
を私のフレームレートを変更しません)出力フレームレートiOS AVFoundationベースのビデオ変換?ありがとう!
あなたは解決策を見つけましたか? – user924
ああ私は答えとして投稿しました! – Mete