在线播放Android录制的视频

时间:2014-11-26 10:15:58

标签: android video-streaming html5-video

我正致力于快递服务项目。我为我们的员工开发了一个Android应用程序,可以作为相机应用程序,他们可以制作照片和视频记录。当照片或视频文件准备就绪时,此应用程序可以自动将其上传到服务器(如果WiFi连接处于活动状态)。服务器维护一个网站,我们可以在其中查看每位员工的日常工作,包括照片和视频文件的链接。当然,通过任何浏览器访问照片都没有问题,但是视频文件存在这样的问题。

我们不会限制员工使用的Android设备,只能使用Android 2.3.3或更高版本(当然必须有相机)。视频是使用CamcorderProfile.QUALITY_LOW设置编写的,因此它的格式取决于设备决定此CamcorderProfile.QUALITY_LOW的内容。从桌面上的不同设备(Windows)查看视频文件没有问题。我和我的主管有一些浏览器插件,所以这些文件可以在浏览器中打开。但我们希望在网站上拥有一个视频查看解决方案,不需要任何浏览器插件或客户端的其他软件。

所以问题是:

  1. 什么是能够在不将整个文件下载到客户端(如YouTube)的情况下启用在线视频观看的最佳视频格式,视频记录可能会很长(一小时,两小时或甚至更多)。

  2. 我需要什么工具才能将Android录制的视频文件通用转换为该格式,而无需手动指定输入文件格式(因为它可能完全不同)?我们的服务器由" SMP Debian 3.2.63-2+deb7u1 x86_64"提供支持。

  3. 我可能错过了什么。对不起,这是我第一个处理视频的项目,我缺乏知识。

1 个答案:

答案 0 :(得分:0)

我回答了我自己的问题,因为这一切似乎已经决定了。经过进一步的研究后,我决定在我们的站点上用标签流式传输所有内容,唯一的来源是.mp4(H.264),因为我们认为99.9%的用户没有问题。我是一名Windows用户,在Google Chrome,Mozilla Firefox和Microsoft Internet Explorer中观看H.264视频没有任何问题,因此我们的大多数客户都可以这样做。

对于视频转换为H.264, ffmpeg 将完成这项工作。我已经做了一些测试,一切都很好。真正的问题是管理视频旋转,因为所有视频都是以纵向模式从Android手机录制的,并且在Android上看来这是通过以横向模式(原生相机方向)录制帧来完成的,但是在元中指定90度旋转属性数据。大量的视频播放器和Firefox拒绝理解它。这个问题可以通过" transpose"来解决。和"旋转"在这样的命令中:

ffmpeg -i 1.avi -vf "transpose=1" -r 25 -b:a 64k -b:v 256k -metadata:s:v:0 rotate=0 r1.mp4
  • -vf "transpose=1"物理地将帧旋转90度
  • -metadata:s:v:0 rotate=0清除元数据中的旋转属性,因为已完成旋转

Left是调整输出质量参数,编写批量转换脚本,将其放在crontab上,编写HTML和JS以允许人们观看此视频的工作。