我正在编写一个视频处理Android应用程序。应用程序的用户将拍摄视频,并且应用程序将视频发送到服务器以进行逐帧处理。然后,服务器将结果发送回应用程序。
在将视频发送到服务器之前将视频制作到Android设备上的框架与发送视频然后将其制动之后,有什么优缺点?什么会更快?
如果我将它制作成Android手机上的帧,我应该发送位图还是应该发送压缩图像然后在服务器上解压缩?与发送位图相比,压缩的成本和收益是多少?我知道压缩比可以根据图像而有所不同,但我只是要求利弊。
答案 0 :(得分:0)
从byte []向服务器发送视频可能会导致outOfMemoryError,因此最好从MultiPart发布视频。您可以从此链接下载jar文件。 http://hc.apache.org/downloads.cgi。下载并将httpmime-4.2.jar添加到您的项目中。
public void uploadVideo(Context context, String videoPath) {
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(context.getString(R.string.url_service_fbpost));
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
if(!videoPath.isEmpty()){
FileBody filebodyVideo = new FileBody(new File(videoPath));
reqEntity.addPart("uploaded", filebodyVideo);
}
postRequest.setEntity(reqEntity);
HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
s = s.append(sResponse);
}
Log.e("Response: ", s.toString());
return true;
} catch (Exception e) {
Log.e(e.getClass().getName(), e.getMessage());
return false;
}
}
答案 1 :(得分:0)
我发现压缩率可能约为16:1。在这种情况下,我可以选择压缩它。上面的比例是我把它压缩成JPEG。