是否有可以在iOS上运行的API来更改现有视频的每秒帧数?
Is there an API that will run on iOS in order to change the Frame Per Second of an existing video?
我正在寻找一种方法来接收任何视频作为输入(iOS 支持(,并在设备上保存具有新每秒帧数速率的新视频。动机是减小视频大小,并使其尽可能轻巧。
- 尝试从命令行使用 ffmpeg 库(需要它直接从应用程序运行(
- 尝试使用SDAVAssetExportSessionDelegate,但仅设法更改每秒位数(每个帧质量较低(
-
虽然使用 OpenCV - 但更喜欢更轻的东西,如果可能的话,还可以内置
目标C: '''
compressionEncoder.videoSettings = @ { AVVideoCodecKey: AVVideoCodecTypeH264, AVVideoWidthKey: [NSNumber numberWithInt:width], //Set your resolution width here AVVideoHeightKey: [NSNumber numberWithInt:height], //set your resolution height here AVVideoCompressionPropertiesKey: @ { AVVideoAverageBitRateKey: [NSNumber numberWithInt:bitRateKey], // Give bitrate for lower size low values AVVideoProfileLevelKey: AVVideoProfileLevelH264High40, // Does not change - quality setting and not reletaed to playback framerate! //AVVideoMaxKeyFrameIntervalKey: @800, }, }; compressionEncoder.audioSettings = @ { AVFormatIDKey: @(kAudioFormatMPEG4AAC), AVNumberOfChannelsKey: @2, AVSampleRateKey: @44100, AVEncoderBitRateKey: @128000, };
'''
预期视频每秒帧数较少,每帧的质量相同。类似于视频的简短缩略图摘要
您正在执行的转换类型在移动设备上将花费时间和精力,但我猜您已经意识到了这一点。
鉴于您的最终目标是减小尺寸,同时可能保持合理的质量,您可能会发现您想在编码中尝试不同的设置等。
对于这种类型的视频操作,ffmpeg 是一个不错的选择,正如您可能从命令行用法中看到的那样。要从应用程序中使用 ffmpeg,一种常见的方法是使用支持良好的"ffmpeg 包装器" - 这有效地从应用程序中运行 ffmpeg 命令行命令。
优点是所有常用语法都应该有效,您可以在 Web 上利用有关 ffmpeg 命令行语法的大量信息。缺点是 ffmpeg 并非不是设计为像这样包装的,因此您可能会看到一些问题,尽管使用支持良好的包装器,您应该找到帮助或其他人已经解决了这些问题。
一些流行的iOS ffmpeg包装器的例子:
- https://github.com/tanersener/mobile-ffmpeg
- https://github.com/sunlubo/SwiftFFmpeg
启动并运行 MobileFFMpeg: https://stackoverflow.com/a/59325680/1466453
一旦您可以在IOS代码中进行MobileFFMpeg调用,那么使用此代码更改帧速率非常简单:
[MobileFFmpeg execute: @"-i -filter:v fps=fps=30 "];
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 如何在c++中录制具有精确帧时间戳的视频
- 在gtest.中使用fff.h模拟系统API
- 有没有任务栏API可以立即应用注册表更改
- C++win32 API创建多个类似视口的窗口
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何将真正的字符串从python c-api转换为python脚本
- 是否有可以在iOS上运行的API来更改现有视频的每秒帧数?
- 使用最新的 ffmpeg API (2017) 创建视频
- OSX 原生 API 视频解码C++
- FFmpeg C++ API 来检测视频是否旋转(在手机上拍摄)
- YouTube API v3-上传视频
- 如何使用ffmpegc API对H.264视频进行编码,然后用媒体播放器打开输出
- 使用FFMPEG API读出特定的视频帧
- 如何使用libvlc API或FFmpeg API提取音频/视频剪辑