我正在开发上传视频(从 iPhone 获取)到我的服务器。
但是,我不知道如何实现。
欢迎任何源代码 objective-c
或 swift
。
我有 120fps
或 240fps
视频(这是慢动作)。
当我在我的 iPhone6 上播放这些视频时。我可以看到慢动作效果。
(我知道播放帧率是 30fps
。)
我想在上传到我的服务器之前将该视频从 120/240 fps
转换为 30fps
视频。 (我的意思是不调整播放帧率,这意味着视频转码为30fps
。)
此外,我想检查慢动作效果的起点和终点。
(也许 iPhone 将此信息记录到视频二进制文件中(它可能驻留在文件的标题中。)
好吧,我想如果我使用 ffmpeg 库,应该很容易(?)。
因此欢迎任何建议。
最佳答案
这是我用来导入 Adobe 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/