小编pig*_*_39的帖子

Swift - 如何获得视频维度?

我正在制作一个视频编辑应用程序,其中每个视频都以这样的方式进行平方,即视频的任何部分都不会被裁剪.为此,在纵向视频的情况下,它包含左右两侧的黑色部分以及用于横向视频,它包含视频顶部和底部的黑色部分.黑色部分是视频的一部分,它们不适合AVPlayerViewController.这是样本,在此输入图像描述

我需要用一些来覆盖这些黑色部分CALayers.

什么是框架(CGRect)CALayer

我正在获取naturalSize包含黑色部分的属性的视频维度.

有没有办法获得没有黑色部分的视频尺寸?(我的意思是实际视频内容的维度)或者有没有办法获得CGRect视频的黑色区域?

size video ios swift

6
推荐指数
2
解决办法
5253
查看次数

如何在合并音频和视频时循环音频

我正在按照此代码合并音频和视频文件。它工作得很好。假设音频长度为 5 秒,视频长度为 20 秒。当我在导出的视频中合并这些文件时,5 秒后没有声音。这很明显,因为我的音频长度是 5 秒。但是是否可以在整个视频会话中循环运行音频。

var finalVideoURL = NSURL()
var finalVideoName = String()

func mergeAudio&VideoFiles(videoUrl:NSURL, audioUrl:NSURL){
    let mixComposition : AVMutableComposition = AVMutableComposition()
    var mutableCompositionVideoTrack : [AVMutableCompositionTrack] = []
    var mutableCompositionAudioTrack : [AVMutableCompositionTrack] = []
    let totalVideoCompositionInstruction : AVMutableVideoCompositionInstruction = AVMutableVideoCompositionInstruction()
    //start merge
    let aVideoAsset : AVAsset = AVAsset(url: videoUrl as URL)
    let aAudioAsset : AVAsset = AVAsset(url: audioUrl as URL)
    mutableCompositionVideoTrack.append(mixComposition.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID: kCMPersistentTrackID_Invalid))
    mutableCompositionAudioTrack.append( mixComposition.addMutableTrack(withMediaType: AVMediaTypeAudio, preferredTrackID: kCMPersistentTrackID_Invalid))
    let aVideoAssetTrack : AVAssetTrack = aVideoAsset.tracks(withMediaType: AVMediaTypeVideo)[0]
    let …
Run Code Online (Sandbox Code Playgroud)

audio video merge ios swift

5
推荐指数
1
解决办法
533
查看次数

AVMutableComposition - 人像视频被美化

我使用以下代码将多个视频合并为一个。

func mergeMultipleVideos() {
    let composition = AVMutableComposition()
    let videoTrack = composition.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID: kCMPersistentTrackID_Invalid)
    let audioTrack = composition.addMutableTrack(withMediaType: AVMediaTypeAudio, preferredTrackID: kCMPersistentTrackID_Invalid)

    var time: Double = 0.0

    for video in self.arrayOfSelectedVideoURL {
        let sourceAsset = AVAsset(url: video as URL)
        let videoAssetTrack = sourceAsset.tracks(withMediaType: AVMediaTypeVideo)[0]
        let audioAssetTrack = sourceAsset.tracks(withMediaType: AVMediaTypeAudio)[0]
        let atTime = CMTime(seconds: time, preferredTimescale:1)

        do{
            try videoTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, sourceAsset.duration) , of: videoAssetTrack, at: atTime)
            try audioTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, sourceAsset.duration) , of: audioAssetTrack, at: atTime)
        }catch{
            print("-----Something wrong.")
        }
        time +=  sourceAsset.duration.seconds
    } …
Run Code Online (Sandbox Code Playgroud)

rotation ios avasset swift

5
推荐指数
0
解决办法
210
查看次数

通过导航控制器返回上一个视图时调用哪个方法?

我在我的应用程序中使用了导航控制器。后退按钮工作正常,点击它时会出现上一个视图。我需要知道,在之前的视图中,出现时调用了哪个方法。

任何援助将不胜感激。

uiviewcontroller ios

4
推荐指数
1
解决办法
1215
查看次数

Swift-如何从相机胶卷中获取视频并将其显示在UICollectionView中?

我想将所有相机胶卷视频及其持续时间加载到UICollectionView中(同样,视频显示在相机胶卷中)。怎么做?我检查了链接。但是他们将视频显示为图片。

video ios uicollectionview swift

3
推荐指数
1
解决办法
4238
查看次数

Swift - 从视频中获取所有帧

我正在关注此代码以获取视频中的所有帧.在这个链接中,他试图在特定时间获得一个框架.但我需要得到所有帧.这是我的代码......

var mutableVideoURL = NSURL()
var videoFrames = [UIImage]()

let asset : AVAsset = AVAsset(url: self.mutableVideoURL as URL)
let mutableVideoDuration = CMTimeGetSeconds(asset.duration)
print("-----Mutable video duration = \(mutableVideoDuration)")
let mutableVideoDurationIntValue = Int(mutableVideoDuration)
print("-----Int value of mutable video duration = \(mutableVideoDurationIntValue)")

for index in 0..<mutableVideoDurationIntValue {
   self.generateFrames(url: self.mutableVideoURL, fromTime: Float64(index))
}

    func generateFrames(url : NSURL, fromTime:Float64) {
        let asset: AVAsset = AVAsset(url: url as URL)
        let assetImgGenerate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset)
        assetImgGenerate.appliesPreferredTrackTransform = true
        let time        : CMTime = …
Run Code Online (Sandbox Code Playgroud)

video ios swift

3
推荐指数
1
解决办法
4486
查看次数

Swift - 通过 UISlider 的 AVPlayer 进度

我正在尝试制作视频播放器,我需要通过UISliderUILabel(用于更新时间)显示进度。这是我的代码

let videoPlayer = AVPlayer()
var videoPlayerSlider: UISlider = UISlider()
var videoPlayerLabel: UILabel = UILabel()

    func updateVideoPlayerSlider() {
        guard let currentTime = videoPlayer.currentTime else {
            return
        }
        let mins = currentTime / 60
        let secs = currentTime.truncatingRemainder(dividingBy: 60)
        let timeformatter = NumberFormatter()
        timeformatter.minimumIntegerDigits = 2
        timeformatter.minimumFractionDigits = 0
        timeformatter.roundingMode = .down
        guard let minsStr = timeformatter.string(from: NSNumber(value: mins)), let secsStr = timeformatter.string(from: NSNumber(value: secs)) else {
            return
        }
        videoPlayerLabel.text = "\(minsStr).\(secsStr)"
        videoPlayerSlider.value = Float(videoPlayer.currentTime())
    }
Run Code Online (Sandbox Code Playgroud)

它显示2错误。 …

slider ios avplayer swift

2
推荐指数
1
解决办法
5830
查看次数

AVFoundation - 为视频添加模糊背景

我正在开发一个视频编辑应用程序Swift.在我的情况下,我的输出视频如下所示在此输入图像描述在此输入图像描述

我试图用这样的模糊效果填充黑色部分在此输入图像描述在此输入图像描述

我搜索但没有得到任何有效的解决方案.任何援助都将是一个很大的帮助.

avfoundation ios

1
推荐指数
1
解决办法
1581
查看次数