私のノートパソコンとAndroid 5.0.1のWindows 7 64ビットを私のSamsung Galaxy S4デバイスで使用しています。 次のコードを使用してデバイスの画面をadb経由でストリーミングしようとしています: adb shell screenrecord --output-format=h264 - | vlc -
私はvlc v2.2.4を持っています これは表示されません。ビデオプレーヤーへのAndroidの画面をストリーム
しかし、k-liteメガコーデックパックv12.3.5に付属のmedia player classicを次のコードで使用した場合: adb shell screenrecord --output-format=h264 - | "C:\Program Files (x86)\K-Lite Codec Pack\MPC-HC64\mpc-hc64_nvo.exe" -
私の画面のようなものが表示されていますが、画像が完全に壊れています。
私のデバイスの画面を記録するのにadb shell screenrecord --output-format=h264 /sdcard/screenrecord.mp4
を使用した場合、デバイスから取り出して、メディアプレーヤーの古典でそれを開くと、ビデオは完全に正常です。ただし、この場合でもvlcを開くことはできません。
何が問題なのですか?なぜ私は記録されたビデオを見ることができますが、ストリーミングされたビデオを見ることはできませんか?
さらにもう1つのフォローアップの質問。私は、デバイスのスクリーンショットを取得するためのadb-serverのコマンドを見つけました。これは、adb shell screencap
コマンドの代替です。 QtフレームワークでQTcpSocket経由でそのコマンドを使用できます。
しかし、私はadb shell screenrecord
の代わりにadbサーバを見つけることができませんでした。この場合、QProcessを使用してコマンドを実行し、QMediaPlayerに出力を転送する必要があります。これまで私は成功していませんでしたが、QMediaPlayer::setMedia
はQMediaSource
またはQIODevice
を受け入れています。私はQProcessがQIODevice
から継承されたとQMediaPlayer:::setMedia
に引数としてそれを提供しようとしましたが、私のプログラムは、私はQMediaPlayer
にQProcess
の出力を転送することができますどのようにエラーコード1で終了していることがわかりましたか?
使用する必要があります。投稿ごとに1つの質問を残して、残りの質問を別々に投稿してください。 –
よろしく、ありがとうございます – Umriyaev