来自 Android 的视频叠加

Posted

技术标签:

【中文标题】来自 Android 的视频叠加【英文标题】:Video Overlay from Android 【发布时间】:2014-03-13 23:03:17 【问题描述】:

我一直在尝试在视频上添加图像叠加,以便仅在特定时间范围内显示叠加图像。

按照以下链接中的说明,我可以使用图像进行叠加视频,这样的叠加图像会显示整个视频运行长度。 http://ffmpeg.gusari.org/viewtopic.php?f=8&t=1181

使用的 FFMPEG 命令:

/data/data/com.example.test/lib/libffmpeg.so -i /storage/sdcard0/e.mp4 -i /storage/sdcard0/a.png -filter_complex [0:v][1:v]overlay=10:10 -codec:a copy /storage/sdcard0/testFFmpeg/cle3far.3gp 

但是,我需要为特定时间间隔的视频叠加图像。所以我尝试了以下命令,但没有成功。

FFMPEG 命令不起作用:

/data/data/com.example.test/lib/libffmpeg.so -i /storage/sdcard0/e.mp4 -i /storage/sdcard0/a.png -filter_complex [0:v][1:v]overlay=10:10:enable=between(t\,0\,30) -codec:a copy /storage/sdcard0/testFFmpeg/cle3far.3gp 

错误信息:

未找到密钥“启用”。 ShelloutError 初始化 过滤 'overlay' 与 args '10:10:enable=between(t,0,30)' ShelloutError 配置过滤器。

通过谷歌搜索,我发现我需要 FFMPEG 2.0,所以我尝试按照 http://vec.io/posts/how-to-build-ffmpeg-with-android-ndk 创建新的 ffmpeg 库,但也没有用。

如果有人可以从以下内容中得到任何东西,那就太好了:

    一个用于 FFMPEG 2.0+ (libffmpeg.so) 的 Android 预编译库 或一种不使用 FFMPEG 进行图像叠加的方法

【问题讨论】:

***.com/questions/13818436/ffmpeg-watermark 试试这个 是的,我知道此链接已被使用,但我在生成 ffmpeg.so 文件后编译此代码 - 执行任何 ffmpeg 命令得到错误退出值 4。 您为什么使用 FFMPEG 而不是 Android 提供的内置媒体播放器? (MediaPlayer 和 VideoView) 实际上我正在创建视频编辑(添加覆盖)保存视频,这就是我使用 ffmpeg 的原因.. 你有解决办法吗? 【参考方案1】:

截至两年前,这似乎是不可能的,所以这可能没有改变。您可以在这里找到具体的参考:http://ffmpeg.org/pipermail/ffmpeg-user/2012-January/004062.html

我最近似乎找不到任何关于它的信息。似乎有一种方法可以在视频中的某个点开始覆盖,但稍后不会停止(有关该信息,请参阅此帖子:Overlay video after set time offset with FFmpeg)。

第一个链接的建议是将其应用于您要在其上显示叠加层的视频片段,因此不幸的是,这可能是目前唯一的方法(至少部分使用 FFMPEG)。

【讨论】:

以上是关于来自 Android 的视频叠加的主要内容,如果未能解决你的问题,请参考以下文章

在 android 中处理视频(裁剪、叠加等) - 怎么样?

在Android中使用FFMPEG在另一个视频上循环叠加视频

来自 Android 的视频流

无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?

如何在 android 中播放来自 URL 的流媒体视频?

是否可以在 android TV 中使用 3rd 方应用程序在任何屏幕上绘制叠加层?