ios - iPhone慢动作视频转码

标签 ios iphone video ffmpeg transcode

我正在开发上传视频(从 iPhone 获取)到我的服务器。

但是,我不知道如何实现。

欢迎任何源代码 objective-cswift

我有 120fps240fps 视频(这是慢动作)。 当我在我的 iPhone6 上播放这些视频时。我可以看到慢动作效果。 (我知道播放帧率是 30fps。)

我想在上传到我的服务器之前将该​​视频从 120/240 fps 转换为 30fps 视频。 (我的意思是不调整播放帧率,这意味着视频转码为30fps。) 此外,我想检查慢动作效果的起点和终点。 (也许 iPhone 将此信息记录到视频二进制文件中(它可能驻留在文件的标题中。)

好吧,我想如果我使用 ffmpeg 库,应该很容易(?)。

因此欢迎任何建议。

最佳答案

这是我用来导入 Adob​​e Premiere 的 ffmpeg 命令行:

视频:

ffmpeg -i <input MOV> -filter "setpts=4.0*PTS" -r 30 -an videofilename.mp4
-filter中的

4.0表示iphone slomo视频以120fps拍摄,即4×30fps;相关的 -r 30 参数用于 30fps。例如,如果您想导出为 60fps,请使用 setpts="2.0*PTS"-r 60

-an 丢弃音频流

音频:

ffmpeg -i <input MOV> -filter "setpts=4.0*PTS" audiofilename.mp3

此时,您在单独的文件中拥有视频和音频流。您或许可以使用 ffmpeg 重新组合它们。

但有一个问题:iPhone 将以正常速度录制音频流,这意味着转换后的音轨将比转换后的视频轨道短 4 倍(在我的示例中)。如果您使用 Premiere,导入视频和音频文件,右键单击时间轴中的音轨,选择“速度/持续时间”,然后设置速度 = 25%(或 50% 用于 120fps 至 60fps)

关于ios - iPhone慢动作视频转码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28191027/

相关文章:

java - 如何读取/写入 ProcessBuilder 流并最终在 ffmpeg 中创建输出文件

android - 我们如何使用 webview 在 Android 应用程序中播放 YouTube 嵌入代码?

用于从多帧和裁剪面部检测面部的matlab代码?

ios - 无法从路径中的包加载 Info.plist

iOS ScrollView 允许滚动过去的内容

iphone - 视频的缩略图

iphone - 如何检查设备是否运行 iOS 6?

ios - 使用参数创建自定义 UIView init 方法

ios - 渐变不显示快速 Xcode

ios - iPhone 在后台收集 CoreMotion 数据。 (超过10分钟)