ffmpeg 命令创建可共享到 Instagram 等的 mp4 视频

Posted

技术标签:

【中文标题】ffmpeg 命令创建可共享到 Instagram 等的 mp4 视频【英文标题】:Ffmpeg command to create mp4 video sharable to Instagram, etc 【发布时间】:2019-02-05 14:59:26 【问题描述】:

我正在我的 android 应用程序中通过将静态 1080x1080 .png 图像与 24/48 .wav 音频相结合来创建一个 mp4 视频,试图生成一个与社交媒体平台兼容并可以共享到社交媒体平台的文件,例如Facebook 和 Instagram(供稿)。

当我尝试分享我创建的视频时,它们会在 Instagram 应用程序中加载和预览(在 Android 和 ios 上测试),但在最后一步点击“分享”按钮后,用户界面返回到我的feed 和上传进度立即切换到"Not Posted Yet. Try Again"。如果我然后点击重试按钮,我会立即得到一个对话框,说明"Couldn't Post Video" "There was a problem rendering your video. If this keeps happening, you may have to use another video."

我正在使用ffmpeg(通过 tanersener 的 mobile-ffmpeg 库)来执行此操作。

到目前为止,我发现的所有文档都没有显示有关 Instagram 上传要求的非常具体的详细信息。 我将 AAC 用于音频,将 h.264 (libx264) 用于视频。 我使用的示例持续时间为 30 秒。如上所述,PNG 是 1080x1080。

我已经通过在我的 Mac 上使用 cmd-line ffmpeg 和相同的输入文件并测试了许多参数变体,将 Android 排除在外,但没有一个可以创建可上传的视频。

我有一个由我们的 iOS 应用程序(不使用 ffmpeg)创建的类似 .mp4 文件,我将它带到我的 Android 设备并成功上传。 我也将我的 .mp4 文件发送到 iOS 设备,但它不会上传,所以这可能是某种编码问题。

我还没有找到可以生成可以成功分享到 Instagram 的视频的 ffmpeg 参数组合。

有没有办法从 Instagram 获取详细日志以了解它拒绝文件的原因?

这是我一直在关注的 ffmpeg 命令:

ffmpeg -i test.wav -i test.png -c:a aac -b:a 256k -ar 44100 -c:v libx264 -b:v 5M -r 30 -pix_fmt yuv420p -preset faster -tune stillimage test.mp4

我尝试了各种不同的视频和音频比特率、帧率、缩放、预设、曲调、配置文件等。但目前还没有运气。

有没有人有一个有效的 ffmpeg 命令来为 Instagram 生成视频?

【问题讨论】:

在 IG 中制作视频,分享和下载相同的视频 .. 然后用作 ffprobe 的输入。从 ffprobe 研究元数据/标准输出,然后使用 CLI ffmpeg 进行迭代,直到您从 ffmpeg 获得与您在 ffprobe 中观察到的“匹配”的输出...然后返回到 android/ffmpeg 活动。 【参考方案1】:

您的视觉输入只是一帧。我怀疑IG不喜欢这个。循环它以从中制作视频流。

ffmpeg -i test.wav -loop 1 -i test.png -c:a aac -b:a 256k -ar 44100 -c:v libx264 -pix_fmt yuv420p -preset faster -tune stillimage -shortest test.mp4

(libx264 通常不需要手动比特率)

【讨论】:

吉安,非常感谢!我曾尝试使用loop,但操作不正确,这对我有很大帮助。工作! @KenRothman 这对我不起作用。你最后的命令是什么?谢谢。

以上是关于ffmpeg 命令创建可共享到 Instagram 等的 mp4 视频的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg:如何使用 ffmpeg 在视频中仅放置颜色叠加视频或应用不同类型的滤色器(如 instagram)

使用android意图将带有图像的文本共享到instagram

黄聪:FFmpeg 使用指南

从 iOS 将视频分享到 Instagram 源

如何在 Instagram 中分享图片?Swift

在没有 UIDocumentInteractionController 的情况下在 Instagram/WhatsApp 上共享