【问题标题】:In Android how to add text as watermark on already recorded video with ffmpeg?在Android中如何使用ffmpeg在已经录制的视频上添加文本作为水印?
【发布时间】:2016-07-22 12:28:46
【问题描述】:

我正在尝试将文本设置为已录制视频的水印,但它不起作用。当我尝试将 image.png 作为水印时,它可以通过遵循此 url http://androidwarzone.blogspot.in/2011/12/ffmpeg4android.html 来工作

在已录制的视频上应用图像作为水印的命令:

String[] complexCommand = {"ffmpeg","-y" ,"-i", videoPathHere,"-strict",
"experimental", "-vf", "movie=" 
+ Environment.getExternalStorageDirectory().getAbsolutePath() 
+ "/watermarkImg.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]",
"-s", "160x120","-r", "30", "-b", "15496k", "-vcodec", "mpeg4","-ab", "48000", 
"-ac", "2", "-ar", "22050", 
Environment.getExternalStorageDirectory().getAbsolutePath()+"/watermark.mp4"}; 

但是当我尝试将文本实现为水印时,它不起作用:

String[] complexCommand = {"ffmpeg", "-y" , "-i", videoPathHere, "-strict", "experimental", 
"-vf", "drawtext=fontfile=" + file + ":text=TestText", "-s", "160x120", "-r", "30", 
"-b", "15496k", "-vcodec", "mpeg4", "-ab", "48000", "-ac", "2", "-ar", "22050", 
Environment.getExternalStorageDirectory().getAbsolutePath()+"/watermark.mp4"}; 

即使我也尝试过 https://video.stackexchange.com/questions/15551/ffmpeg-drawtext-filter-create-transparent-background-with-text

但在我的情况下它也不起作用。

那么,添加文本作为水印有什么问题?

我将 commenad 从 ;text=TestText 更改为 :text=TestText 然后它显示给定错误。

07-23 10:58:07.595: I/Videokit(28832): libvideokit.so 已加载 07-23 10:58:07.595: I/Videokit(28832): args 不为 NULL 07-23 10:58:07.595: I/Videokit(28832): 不止一个 arg 07-23 10:58:07.595: I/Videokit(28832): 找到函数符号 07-23 10:58:07.595: D/Videokit(28832): 调用 videokit 通过加载器运行 07-23 10:58:07.595: I/Videokit(28832): vk ffmpeg sdcardPath: /data/user/0/valamovie.com/files/ 07-23 10:58:07.595: D/Videokit(28832): 调用 licenseCheckComplex 07-23 10:58:07.595: I/Videokit(28832): licenseCheck in path: /data/user/0/valamovie.com/files/ 07-23 10:58:07.595: I/Videokit(28832): isLicExistsComplex... 07-23 10:58:07.595: I/Videokit(28832): 试图打开 /data/user/0/valamovie.com/files//ffmpeglicense.lic 07-23 10:58:07.595: I/Videokit(28832): 找到许可文件... 07-23 10:58:07.596:I/Videokit(28832):您使用了 15 个试用天中的 0 个。 07-23 10:58:07.596: D/Videokit(28832): 许可证检查 rc: 0 07-23 10:58:07.596: D/Videokit(28832): run() 调用 07-23 10:58:07.670: A/libc(28832): 致命信号 11 (SIGSEGV), 代码 1, tid 28832 (valamovie.com) 中的故障地址 0x10 07-23 10:58:07.771: A/DEBUG(152): * * 07-23 10:58:07.771:A/DEBUG(152):构建指纹:'Lava/PixelV1/PixelV1_sprout:6.0/MRA58V/eng.admin.20160419.120644:user/release-keys' 07-23 10:58:07.771:A/DEBUG(152):修订:'0' 07-23 10:58:07.771: A/DEBUG(152): ABI: 'arm' 07-23 10:58:07.771: A/DEBUG(152): pid: 28832, tid: 28832, name: valamovie.com >>> valamovie.com

【问题讨论】:

  • 你得到这个错误的解决方案了吗?

标签: android video ffmpeg watermark drawtext


【解决方案1】:

这 - ";text=TestText" 应该是 ":text=TestText"

【讨论】:

  • 感谢@Mulvya,我现在尝试它开始崩溃我在应用此更改后编辑我的帖子并显示错误列表。
  • 您遇到了分段错误。您需要使用不同的 FFmpeg 二进制文件。
  • 对此的任何参考,实际上 FFmpeg 对我来说是新的
  • 在输出中看到这个消息:Fatal signal 11 (SIGSEGV)。该错误不是由 FFmpeg 产生的,而是由 libvideokit 产生的。不知道那是什么,但我建议使用不同的 FFmpeg 二进制文件,除非你知道如何更正它。
猜你喜欢
  • 2014-10-27
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
  • 2012-06-10
  • 2018-11-19
相关资源
最近更新 更多