【发布时间】:2013-07-18 19:57:54
【问题描述】:
我想开发一个 android 应用程序,它允许我连续录制视频并将部分视频上传到服务器而无需停止录制。 我可以在不停止视频的情况下录制长达 60 分钟的应用程序,这一点至关重要。
初步方法
应用程序由两部分组成:
- MediaRecorder,可从摄像头连续录制视频。
- 剪切/复制 - 部分:在录制视频时,我必须取出某些片段并将它们发送到服务器。
这部分是使用http://ffmpeg4android.netcompss.com/
libffmpeg.so 实现的。我使用了他们的 VideoKit Wrapper,它允许我使用我需要的任何参数直接运行 ffmpeg。
我的问题
我尝试了带有参数的 ffmpeg 命令
ffmpeg -ss 00:00:03 -i <in-file> -t 00:00:05 -vcodec copy -acodec copy <out-file>
只要 Android 的 MediaRecorder 完成录制,这对我来说非常有用。
当我执行相同的命令时,当 MediaRecorder 正在录制文件时,ffmpeg 退出并显示错误消息“不允许操作”。
- 我认为错误消息并不意味着android阻止了对该文件的访问。我认为 ffmpeg 需要“moov-atoms”才能在视频中找到合适的位置。
出于这个原因,我想到了其他方法(不需要moov-atom):
- 用 android 创建一个 rtsp 流,稍后访问 rtsp 流。问题是,据我所知,android SDK 不支持录制到 rtsp 流。
- 或许可以直接用ffmpeg访问摄像头(/dev/video0好像是视频设备?!)
- 我读到 webm 作为流媒体的替代品,也许 android 可以录制 webm 流?!
TLDR:太久没有阅读:
我想在录制时使用 ffmpeg (libffmpeg.so) 访问视频文件。 Fffmpeg 退出并显示错误消息“不允许操作”
目标:
我的目标是录制视频(和音频),并在视频仍在录制时截取部分视频并将其上传到服务器。
也许您可以帮我解决问题,或者您对如何解决我的问题有其他想法。
非常感谢。
【问题讨论】:
-
这个问题你解决了吗?
标签: android ffmpeg video-encoding