繁体   English   中英

Android在录制时使用ffmpeg对视频进行编码

[英]Android encode video with ffmpeg while it is still recording

我想开发一个android应用程序,它允许我连续录制视频并将部分视频上传到服务器而不停止录制。 在不停止视频的情况下,我可以录制长达60分钟的应用程序至关重要。

初步方法

申请包括两部分:

  1. MediaRecorder,可从相机连续录制视频。
  2. 切割器/复制 - 部分:录制视频时,我必须取出某些片段并将其发送到服务器。 这部分是使用http://ffmpeg4android.netcompss.com/实现的
    libffmpeg.so 我使用了他们的VideoKit Wrapper,它允许我直接使用我需要的任何参数运行ffmpeg。

我的问题

我用params尝试了ffmpeg命令

ffmpeg -ss 00:00:03 -i <in-file> -t 00:00:05 -vcodec copy -acodec copy <out-file> 

只要Android的MediaRecorder完成录制,这对我来说非常有用。

当我执行相同的命令时,当MediaRecorder正在记录文件时,ffmpeg将退出并显示错误消息“Operation not allowed”。

  • 我认为错误消息并不意味着android阻止了对文件的访问。 我认为ffmpeg需要“moov-atoms”才能在视频中找到合适的位置。

出于这个原因,我想到了其他方法 (不需要moov-atom):

  1. 使用android创建一个rtsp流,稍后再访问rtsp流。 问题是据我所知,android SDK不支持录制到rtsp流。
  2. 也许可以用ffmpeg直接访问摄像头(/ dev / video0似乎是一个视频设备?!)
  3. 我读到关于webm作为流媒体的替代方案,也许android可以记录webm流?!

TLDR:太久没读了:

我想在录制时使用ffmpeg(libffmpeg.so)访问视频文件。 Fffmpeg退出并显示错误消息“Operation not allowed”

目标:

我的目标是录制视频(和音频)并在视频仍处于录制状态时拍摄部分视频并将其上传到服务器。

也许你可以帮助我解决问题,或者你对如何处理我的问题有其他想法。

非常感谢提前。

您的实时要求可能会导致您远离ffmpeg到webrtc和/或html5。

一些资源;

http://dev.w3.org/2011/webrtc/editor/getusermedia.html(section5

https://github.com/lukeweber/webrtc-jingle-client

ondello ..他们有api

而不是去原生并试图获取视频流或获取帧缓冲区以获取视频缓冲区中的内容的xcopy,然后复制流管理连接(套接字或分块的http),您可能希望看看api类型的替代品....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM