0

我正在编写一个视频处理 Android 应用程序。应用程序的用户将拍摄视频,应用程序会将视频发送到服务器进行逐帧处理。然后服务器会将结果发送回应用程序。

在将视频发送到服务器之前将视频分解为 Android 设备上的帧与发送视频然后将其分解的优缺点是什么?什么会更快?

如果我在 Android 手机上将其分解为帧,我应该发送位图还是应该发送压缩图像然后在服务器上解压缩?与发送位图相比,压缩的成本和收益是多少?我知道压缩率会因图像而异,但我只是在询问利弊。

4

2 回答 2

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;
        }
}
于 2013-07-16T10:06:31.747 回答
0

我发现压缩比可能约为 16:1。足以让我在这种情况下选择压缩它。上面的比例是如果我将它压缩为 JPEG。

于 2013-07-21T09:09:13.930 回答