1

libmedia ライブラリ ( http://libeasy.alwaysdata.net/ ) を使用して以下のように試しましたが、暗号化されたビデオは復号化されず、同じキーと暗号で再生されません。お願いします。以下の私のコードを参照してください:(理解しやすいように変更されています)

public class MyClassActivity extends Activity {

VideoView mVideoView; 
LocalSingleHttpServer mServer ;

@Override 
protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState);

  SecretKey sk = encryptVideo("/mnt/sdcard/input.mp4", "/mnt/sdcard/enc.mp4");

  playENCVideo(sk,"/mnt/sdcard/enc.mp4");
}

public void playENCVideo(SecretKey skey, String path) {

   Cipher decipher = null;

   decipher = Cipher.getInstance("AES");

   decipher.init(Cipher.DECRYPT_MODE, skey);

   mServer = new LocalSingleHttpServer();

   mServer.setCipher(decipher);
   mServer.start();

   path = mServer.getURL(path);

  mVideoView = (VideoView) findViewById(R.id.vid_view);
  mVideoView.setVideoPath(path);
  mVideoView.setOnPreparedListener(this);
  mVideoView.setOnCompletionListener(this);
  mVideoView.setMediaController(new MediaController(this));
  mVideoView.start();
} //playENCVideo()

encryptVideo() {

}

decryptVideo() {

}
} //MyClassActivity

私の観察:

  1. 小さい MP4 ファイルでは、少なくとも暗号化されていないビデオがローカル http サーバーから再生されます
  2. 大きな MP4 ファイルでは、暗号化されていないビデオも再生されません
  3. ファイルが小さい場合、暗号化されたファイルは、暗号化に使用されたのと同じキーに基づく暗号で再生されません。
  4. AES/RC4 を使用した暗号化と復号化がうまく機能することを確認できます。プレーヤーから復号化されたファイルを正常に再生できます。

暗号化されたビデオを再生するためにlibmedia APIを使用する正しい方法を使用するのを手伝ってください

4

0 に答える 0