我在我的笔记本电脑上使用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