我在我的筆記本電腦上使用Windows 7 64位,在我的Samsung Galaxy S4設備上使用Android 5.0.1。 我試圖通過adb使用以下代碼流式傳輸設備的屏幕: adb shell screenrecord --output-format=h264 - | vlc -
我有vlc v2.2.4 但它沒有顯示任何內容。將Android屏幕流式傳輸到視頻播放器
但是,如果我使用的媒體播放器經典,它與k-lite兆豐編解碼器包v12.3.5與以下代碼: 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
來記錄我的設備屏幕,從設備中拉出來,並用media player classic打開它,那麼它的視頻就完全沒問題。但是,即使在這種情況下,vlc也無法打開。
可能是什麼問題?爲什麼我可以觀看錄製的視頻,但無法觀看流式視頻?
還有一個後續問題。我發現adb-server的命令來獲取設備的屏幕截圖。它可以替代adb shell screencap
命令。我可以在Qt框架中通過QTcpSocket使用該命令。
但是,我無法找到替代adb shell screenrecord
的adb服務器。在這種情況下,我需要使用QProcess來運行命令並以某種方式將輸出轉發給QMediaPlayer。到目前爲止,我無法成功,因爲我發現QMediaPlayer::setMedia
接受QMediaSource
或QIODevice
。我發現QProcess從QIODevice
繼承,並試圖將其作爲參數提供給QMediaPlayer:::setMedia
,但是我的程序退出時出現錯誤代碼1.我如何將QProcess
的輸出轉發到QMediaPlayer
?
我回答你的問題之一。請單獨發佈您的其他問題 - 每個帖子保留一個問題。 –
好的,謝謝 – Umriyaev