Ios 使用AVAssetWriter/Avassetrader设置视频帧速率时出现问题 情况:
我正在尝试导出带有一些参数的视频,如视频比特率、音频比特率、帧速率、更改视频分辨率等。请注意,我让用户以分数形式设置视频帧速率;喜欢的用户可以设置视频帧速率,比如说23.98 我使用AVAssetWriter和avassetrader进行此操作。我使用它来编写示例缓冲区 除了视频帧速率之外,其他一切都正常工作 我所尝试的:Ios 使用AVAssetWriter/Avassetrader设置视频帧速率时出现问题 情况:,ios,swift,macos,video,video-encoding,Ios,Swift,Macos,Video,Video Encoding,我正在尝试导出带有一些参数的视频,如视频比特率、音频比特率、帧速率、更改视频分辨率等。请注意,我让用户以分数形式设置视频帧速率;喜欢的用户可以设置视频帧速率,比如说23.98 我使用AVAssetWriter和avassetrader进行此操作。我使用它来编写示例缓冲区 除了视频帧速率之外,其他一切都正常工作 我所尝试的: 按照建议设置编剧电影时间刻度。这会改变视频帧速率,但也会使视频变慢。() 设置AVVideoExpectedSourceFrameRateKey。这没有帮助。() 设置A
您能为“迟缓”视频添加一个示例吗?嗯,如果您的目标是任意帧速率,那么首先将视频采样(过滤)到更高的fps(比如120或更高),然后再将采样降低到正确的fps,这是否有意义?这可能会保持运动的平滑度不变,而每n帧跳过一次将完全破坏视频的速度。
var sampleTimingInfo = CMSampleTimingInfo()
var sampleBufferToWrite: CMSampleBuffer?
CMSampleBufferGetSampleTimingInfo(vBuffer, at: 0, timingInfoOut: &sampleTimingInfo)
sampleTimingInfo.duration = CMTimeMake(value: 100, timescale: Int32(videoConfig.videoFrameRate * 100))
sampleTimingInfo.presentationTimeStamp = CMTimeAdd(previousPresentationTimeStamp, sampleTimingInfo.duration)
previousPresentationTimeStamp = sampleTimingInfo.presentationTimeStamp
let status = CMSampleBufferCreateCopyWithNewTiming(allocator: kCFAllocatorDefault, sampleBuffer: vBuffer,sampleTimingEntryCount: 1, sampleTimingArray: &sampleTimingInfo, sampleBufferOut: &sampleBufferToWrite)