Swift视频录制之设置视频压缩质量、分辨率例子

在之前的小视频录制文章中,我们使用 AVAssetExportSession 将合并后的视频压缩输出成一个最终的视频文件。当时使用的是高品质的压缩(AVAssetExportPresetHighestQuality)。

let exporter = AVAssetExportSession(asset: composition,
                                    presetName:AVAssetExportPresetHighestQuality)!

当然除了AVAssetExportPresetHighestQuality,还有许多其它的设置视频分辨率(Export preset)供我们选择使用。比如为了方便传输,节约带宽,可以将视频转成低分辨率。

1,固定分辨率预设属性

(1)AVAssetExportPreset640x480:设置视频分辨率640x480
(2)AVAssetExportPreset960x540:设置视频分辨率960x540
(3)AVAssetExportPreset1280x720:设置视频分辨率1280x720
(4)AVAssetExportPreset1920x1080:设置视频分辨率1920x1080
(5)AVAssetExportPreset3840x2160:设置视频分辨率3840x2160

2,相对质量预设属性

(1)AVAssetExportPresetLowQuality:低质量
(2)AVAssetExportPresetMediumQuality:中等质量
(3)AVAssetExportPresetHighestQuality:高质量

这种设置方式,最终生成的视频分辨率与具体的拍摄设备有关。比如 iPhone6 拍摄的视频:
使用AVAssetExportPresetHighestQuality则视频分辨率是1920x1080(不压缩)。
AVAssetExportPresetMediumQuality视频分辨率是568x320
AVAssetExportPresetLowQuality视频分辨率是224x128

时间: 2024-09-30 07:00:55

Swift视频录制之设置视频压缩质量、分辨率例子的相关文章

Swift 视频录制之设置拍摄窗口大小,录制正方形视频

在之前的两篇文章中,我介绍了如何通过 AVFoundation.framework 框架提供的 AVCaptureSession 类来实现视频的录制.以及通过 AVMutableComposition 来将多段视频片段的视频.音频轨道进行拼接合成. 这两个样例我们用的都是全屏录像,拍摄下的视频是竖的(iPhone6拍摄的分辨率是1080*1920). 但我们看市面上常见的视频APP,拍摄的小视频都是正方形,或者是横向的矩形.本文演示如何修改视频拍摄尺寸,这里以实现正方形视频的拍摄为例. 1,要实

Swift 视频录制之小视频拍摄,将多段视频进行合并

我介绍了如何通过 AVFoundation.framework 框架提供的 AVCaptureSession 类来实现视频的录制. 当时的程序是点击"开始"按钮就开始视频录制,点击"停止"则将视频保存起来.整个视频是连续地录制,没有时间限制.今天继续在其基础之上做个改进,实现小视频拍摄功能. 1,小视频拍摄要实现的功能 (1)视频可以分段录制.按住"录像"按钮,则开始捕获摄像头进行视频录制,放开按钮则暂停录制. (2)所有视频片段加起来的时间长度

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePickerControlle

[Android]Android视频录制命令screenrecord

你要知道: screenrecord是一个shell命令 支持Android4.4(API level 19)以上 支持视频格式: mp4 一些限制 某些设备可能无法直接录制,原因是分辨率太高,如果遇到此类问题,请试着指定较低的分辨率 不支持录制过程中屏幕旋转,如果录制过程中旋转,有可能画面被切断 录制视频的时候声音不会被录下来 开始录制命令: adb shell screenrecord /sdcard/demo.mp4 说明:录制手机屏幕,视频格式为mp4,存放到手机sd卡里,默认录制时间为

汇总Android视频录制中常见问题_Android

本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转 一.视频录制流程    以微信为例,其录制触发为按下(住)录制按钮,结束录制的触发条件为松开录制按钮或录制时间结束,其流程大概可以用下图来描述. 1.1.开始录制    根据上述流程及项目的编程惯例,可在onCreate()定义如下函数来完成功能:      初始化过程主要包括View,Data以及Listener三部分.在初始化View时,添加摄像

Android视频录制命令screenrecord

转自http://blog.csdn.net/wirelessqa/article/details/22725581 Android视频录制命令screenrecord 你要知道: screenrecord是一个shell命令 支持Android4.4(API level 19)以上 支持视频格式: mp4 一些限制 某些设备可能无法直接录制,原因是分辨率太高,如果遇到此类问题,请试着指定较低的分辨率 不支持录制过程中屏幕旋转,如果录制过程中旋转,有可能画面被切断 录制视频的时候声音不会被录下来

FMS3系列(四):在线视频录制、视频回放

使用Flash/Flex+FMS实现在线视频录制.视频回放的很简单的.通过阅读API文档后基本都可以实现这个功能,本文也意在抛砖引玉,希望对刚入手这块的朋友有所帮助. 首先建立好Flash(ActionScript 3.0)文件,从组件(可使用Ctrl+F7打开)库中拖拽相应的组件到Flash舞台上,如下图: 界面布局好后我们通过程序设置组见的显示文本以及为按扭添加事件监听,新建一个ActionScript类文件,编写代码如下: 以下为引用的内容: 1 public function Publi

Flex与.NET互操作(十三):FluorineFx.Net实现视频录制与视频回放_Flex

通过它我们可以非常方便的实现在线视频录制.视频直播.视频聊天以及视频会议等类似应用程序的开发.  在<FMS3系列(四):在线视频录制.视频回放 >这篇文章里我写了通过FMS来实现在线视频录制和视频回放的功能,客户端的开发和这篇文章是相同的,不同的是本文将使用Flex来开发.       首先我们来看看使用FluorineFx服务端是如何开发的,建立ApplicationAdapter是必然的,这里我们为本文中的示例程序建立的ApplicationAdapter为VideoApplicatio

FLASH视频录制+抓图

源文件:视频录制.rar代码:stop();  实例名begin_btn,view_btn,norm_btn,photo_btn四个按钮,实例名为mybox的一个视频(库--新建视频),  //将按钮设为禁用  begin_btn.enabled = false;  view_btn.enabled = false;  norm_btn.enabled=false;  client_nc = new NetConnection();  client_nc.onStatus = function(