【问题标题】:Video file transfer from Android phone to server视频文件从 Android 手机传输到服务器
【发布时间】:2013-07-16 09:34:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: android client-server


    【解决方案1】:

    从 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;
            }
    }
    

    【讨论】:

    • 您好,感谢您分享此代码。我想在我的音频应用程序中使用此代码。但我有一些问题。我将所有 jar 文件添加到我的 libs 目录中,并且确实导入了,但是 Android Stuio 给出了这个错误:错误:任务':app:packageDebug'的执行失败。 > 在 APK META-INF/DEPENDENCIES 文件 1 中复制的重复文件:C:\Users\Username\AndroidStudioProjects\sesliTwitter\app\libs\httpmime-4.3.4.jar 文件 2:C:\Users\Username\AndroidStudioProjects\sesliTwitter\ app\libs\httpmime-4.3.4.jar
    【解决方案2】:

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

    【讨论】:

      最近更新 更多