private async void InitMediaCapture()
        {
            mediaCapture = new Windows.Media.Capture.MediaCapture();
            await mediaCapture.InitializeAsync(captureInitSettings);

            Windows.Media.Effects.VideoEffectDefinition def = new Windows.Media.Effects.VideoEffectDefinition(Windows.Media.VideoEffects.VideoStabilization);
            await mediaCapture.AddVideoEffectAsync(def, MediaStreamType.VideoRecord);

            profile = Windows.Media.MediaProperties.MediaEncodingProfile.CreateMp4(Windows.Media.MediaProperties.VideoEncodingQuality.Qvga);
            System.Guid MFVideoRotationGuild = new System.Guid("C380465D-2271-428C-9B83-ECEA3B4A85C1");
            int         MFVideoRotation      = ConvertVideoRotationToMFRotation(VideoRotation.None);

            profile.Video.Properties.Add(MFVideoRotationGuild, PropertyValue.CreateInt32(MFVideoRotation));
            var transcoder = new Windows.Media.Transcoding.MediaTranscoder();

            transcoder.AddVideoEffect(Windows.Media.VideoEffects.VideoStabilization);
            capturePreview.Source = mediaCapture;
            DisplayInformation.AutoRotationPreferences = DisplayOrientations.None;

            var definition = new FaceDetectionEffectDefinition();

            definition.SynchronousDetectionEnabled = false;
            definition.DetectionMode = FaceDetectionMode.HighPerformance;
            faceDetectionEffect      = (FaceDetectionEffect)await mediaCapture.AddVideoEffectAsync(definition, MediaStreamType.VideoPreview);

            faceDetectionEffect.DesiredDetectionInterval = TimeSpan.FromMilliseconds(33);
            faceDetectionEffect.Enabled       = true;
            faceDetectionEffect.FaceDetected += FaceDetectionEffect_FaceDetected;
        }
示例#2
0
        private async void InitMediaCapture()
        {
            mediaCapture = new Windows.Media.Capture.MediaCapture();
            await mediaCapture.InitializeAsync(captureInitSettings);

            // Add video stabilization effect during Live Capture
            Windows.Media.Effects.VideoEffectDefinition def = new Windows.Media.Effects.VideoEffectDefinition(Windows.Media.VideoEffects.VideoStabilization);
            await mediaCapture.AddVideoEffectAsync(def, MediaStreamType.VideoRecord);

            profile = Windows.Media.MediaProperties.MediaEncodingProfile.CreateMp4(Windows.Media.MediaProperties.VideoEncodingQuality.Qvga);

            // Use MediaEncodingProfile to encode the profile
            System.Guid MFVideoRotationGuild = new System.Guid("C380465D-2271-428C-9B83-ECEA3B4A85C1");
            int         MFVideoRotation      = ConvertVideoRotationToMFRotation(VideoRotation.None);

            profile.Video.Properties.Add(MFVideoRotationGuild, PropertyValue.CreateInt32(MFVideoRotation));

            // add the mediaTranscoder
            var transcoder = new Windows.Media.Transcoding.MediaTranscoder();

            transcoder.AddVideoEffect(Windows.Media.VideoEffects.VideoStabilization);

            // wire to preview XAML element
            capturePreview.Source = mediaCapture;
            DisplayInformation.AutoRotationPreferences = DisplayOrientations.None;
        }
示例#3
0
        private async Task <MediaCapture> StartRecording(string fileName)
        {
            var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(Windows.Devices.Enumeration.DeviceClass.VideoCapture);

            var camerDeviceId = devices.FirstOrDefault()?.Id;

            var captureSettings = new MediaCaptureInitializationSettings
            {
                VideoDeviceId        = camerDeviceId,
                AudioDeviceId        = string.Empty,
                PhotoCaptureSource   = PhotoCaptureSource.VideoPreview,
                StreamingCaptureMode = StreamingCaptureMode.Video
            };

            var mediaCapture = new MediaCapture();
            await mediaCapture.InitializeAsync(captureSettings);

            var def = new Windows.Media.Effects.VideoEffectDefinition(Windows.Media.VideoEffects.VideoStabilization);
            await mediaCapture.AddVideoEffectAsync(def, MediaStreamType.VideoRecord);

            var profile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Qvga);

            var storageFolder = await KnownFolders.RemovableDevices
                                .GetFolderAsync("E:\\");

            var storageFile = await storageFolder.CreateFileAsync(fileName, CreationCollisionOption.GenerateUniqueName);

            await mediaCapture.StartRecordToStorageFileAsync(profile, storageFile);

            return(mediaCapture);
        }
示例#4
0
        private async Task AddEffectsAsync()
        {
            UpdateConfiguration();

            var videoEffectDefinition = new Windows.Media.Effects.VideoEffectDefinition("Lumia.Imaging.VideoEffect", m_configurationPropertySet);

            await m_mediaCapture.ClearEffectsAsync(MediaStreamType.VideoPreview);

            await m_mediaCapture.ClearEffectsAsync(MediaStreamType.VideoRecord);

            await m_mediaCapture.ClearEffectsAsync(MediaStreamType.Photo);

            await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.VideoPreview);

            switch (m_mediaCapture.MediaCaptureSettings.VideoDeviceCharacteristic)
            {
            case VideoDeviceCharacteristic.AllStreamsIndependent:
                await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.VideoRecord);

                await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.Photo);

                break;

            case VideoDeviceCharacteristic.PreviewPhotoStreamsIdentical:
            case VideoDeviceCharacteristic.RecordPhotoStreamsIdentical:
                await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.VideoRecord);

                break;

            case VideoDeviceCharacteristic.PreviewRecordStreamsIdentical:
                await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.Photo);

                break;
            }
        }
        async Task initMediaCaptureAsync()
        {
            var captureInitSettings = new Windows.Media.Capture.MediaCaptureInitializationSettings();

            captureInitSettings.AudioDeviceId        = DeviceInfo.Instance.Id;
            captureInitSettings.VideoDeviceId        = DeviceInfo.Instance.Id;
            captureInitSettings.StreamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.AudioAndVideo;
            captureInitSettings.PhotoCaptureSource   = Windows.Media.Capture.PhotoCaptureSource.VideoPreview;

            if (deviceList.Count > 0)
            {
                captureInitSettings.VideoDeviceId = deviceList[0].Id;
            }

            mediaCapture = new Windows.Media.Capture.MediaCapture();
            await mediaCapture.InitializeAsync(captureInitSettings);

            // Add video stabilization effect during Live Capture
            Windows.Media.Effects.VideoEffectDefinition def = new Windows.Media.Effects.VideoEffectDefinition(Windows.Media.VideoEffects.VideoStabilization);
            await mediaCapture.AddVideoEffectAsync(def, MediaStreamType.VideoRecord);

            profile = Windows.Media.MediaProperties.MediaEncodingProfile.CreateMp4(Windows.Media.MediaProperties.VideoEncodingQuality.Qvga);

            // Use MediaEncodingProfile to encode the profile
            System.Guid MFVideoRotationGuild = new System.Guid("C380465D-2271-428C-9B83-ECEA3B4A85C1");

            int MFVideoRotation = convertVideoRotationToMFRotation(VideoRotation.None);

            profile.Video.Properties.Add(MFVideoRotationGuild, PropertyValue.CreateInt32(MFVideoRotation));

            // add the mediaTranscoder
            var transcoder = new Windows.Media.Transcoding.MediaTranscoder();

            transcoder.AddVideoEffect(Windows.Media.VideoEffects.VideoStabilization);

            // wire to preview XAML element
            DisplayInformation.AutoRotationPreferences = DisplayOrientations.None;
        }
示例#6
0
        private async Task AddEffectsAsync()
        {
            UpdateConfiguration();

            var videoEffectDefinition = new Windows.Media.Effects.VideoEffectDefinition("Lumia.Imaging.VideoEffect", m_configurationPropertySet);

            await m_mediaCapture.ClearEffectsAsync(MediaStreamType.VideoPreview);
            await m_mediaCapture.ClearEffectsAsync(MediaStreamType.VideoRecord);
            await m_mediaCapture.ClearEffectsAsync(MediaStreamType.Photo);

            await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.VideoPreview);

            switch (m_mediaCapture.MediaCaptureSettings.VideoDeviceCharacteristic)
            {
                case VideoDeviceCharacteristic.AllStreamsIndependent:
                    await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.VideoRecord);
                    await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.Photo);
                    break;
                case VideoDeviceCharacteristic.PreviewPhotoStreamsIdentical:
                case VideoDeviceCharacteristic.RecordPhotoStreamsIdentical:
                    await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.VideoRecord);
                    break;
                case VideoDeviceCharacteristic.PreviewRecordStreamsIdentical:
                    await m_mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.Photo);
                    break;

            }

        }
示例#7
0
 async Task AddVideoStabilization()
 {
     var def = new Windows.Media.Effects.VideoEffectDefinition(Windows.Media.VideoEffects.VideoStabilization);
     await mediaCapture.AddVideoEffectAsync(def, MediaStreamType.VideoRecord);
 }