使用 AVCaptureMovieFileOutput 实例时将视频编解码器设置为 H.264?赛马林

Set the Video Codec to H.264 when using an AVCaptureMovieFileOutput instance? Xamarin

在使用 AVCaptureMovieFileOutput 实例时需要帮助将视频编解码器设置为 H.264。

查看 Apple 文档,我发现它们支持 AVVideoCodecType 类型的结构,但是,我在 Xamarin.iOS 文档中没有看到这一点。

非常感谢您的帮助,因为我不想重写视频捕捉逻辑来使用 AVAssetWriter。

所以,我找到了解决方案,这里是为那些追随我的人提供的。

步骤 1: 创建一个 AVCaptureMovieFileOutput 实例。

var output = new AVCaptureMovieFileOutput();

第 2 步:创建一个 NSDictionary,在其中列出所需电影输出设置的键和值。

var outputSettings = new NSDictionary(AVVideoCodecType.H264, AVVideo.CodecKey);

第三步:设置输出设置

output.SetOutputSettings(outputSettings, output.ConnectionFromMediaType(AVMediaType.Video))

这里的技巧是调用 ConnectionFromMediaType 方法,在您的 AVCaptureMovieFileOutput 实例上传入 MediaType,其中 returns 一个 AVCaptureConnection。

我必须执行以下操作才能使它在 Xamarin.iOS 中工作:

var videoOutput = new AVCaptureMovieFileOutput();
var outputSettings = new NSDictionary(AVVideo.CodecKey, AVVideo.CodecH264);

videoOutput.SetOutputSettings(outputSettings, videoOutput.Connections[0]);