Android端末をUSBや無線経由で画面表示や操作のできるScrcpyの5.0がリリースされました.
今回のハイライトはハードウェアデコード機能の追加.
laptopを少電力モードにしている状態で動画再生中のAndroidを画面転送していると再生が追いつかずどんどん映像と音がずれていたのですがこういったことが減りそうです.
Debian packageは結構古いです.
$ rmadison scrcpy scrcpy | 1.17-1 | oldoldstable | source, amd64, arm64, armhf, i386 scrcpy | 3.3.4-1~bpo12+1 | oldstable-backports-sloppy-debug/contrib | source scrcpy | 3.3.4-1~bpo12+1 | oldstable-backports-sloppy/contrib | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x scrcpy | 3.3.4-1~bpo13+1 | stable-backports-debug/contrib | source scrcpy | 3.3.4-1~bpo13+1 | stable-backports/contrib | source, amd64, arm64, armel, armhf, i386, ppc64el, riscv64, s390x scrcpy | 4.1-1 | testing/contrib | source scrcpy | 4.1-1 | unstable-debug/contrib | source scrcpy | 4.1-1 | unstable/contrib | source scrcpy | 4.1-1+b1 | testing/contrib | amd64, arm64, armhf, i386, loong64, ppc64el, riscv64, s390x scrcpy | 4.1-1+b1 | unstable/contrib | amd64, arm64, armhf, i386, loong64, ppc64el, riscv64, s390x
scrcpyのsourceをpullして5.0で
$ git pull $ git checkout v5.0 HEAD is now at 19871982 Update links to 5.0 $ git status HEAD detached at v5.0 nothing to commit, working tree clean
buildは大変なので既製のサーバーを使用します.
$ ./install_release.sh
5.0になりました.
$ which scrcpy /usr/local/bin/scrcpy $ scrcpy --version scrcpy 5.0 <https://github.com/Genymobile/scrcpy> Dependencies (compiled / linked): - SDL: 3.4.16 / 3.4.16 - libavcodec: 63.1.102 / 63.1.102 - libavformat: 63.1.102 / 63.1.102 - libavutil: 61.1.102 / 61.1.102 - libavdevice: 63.1.102 / 63.1.102 - libusb: - / 1.0.30
--hwdec オプションもあります.
$ scrcpy --help | grep -A7 -- --hwdec=
--hwdec=mode
Configure hardware video decoding on the computer.
Possible values are "auto" (the first available hardware decoder,
software decoding otherwise), "disabled" (always use software decoding),
"vaapi" (Linux only), "d3d11va" (Windows only) and "videotoolbox" (macOS
only).
Default is "auto".既定値では --hwdec=auto で vaapi になりました.
$ scrcpy scrcpy 5.0 <https://github.com/Genymobile/scrcpy> INFO: ADB device found: INFO: --> (usb) cfc15fe5 device P780 /usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 43.9 MB/s (733974 bytes in 0.016s) [server] INFO: Device: [TINNO] Rakuten P780 (Android 11) INFO: Renderer: opengl INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 26.2.4-1 INFO: Trilinear filtering enabled INFO: Trilinear filtering disabled for VA-API frames INFO: Interop: vaapi INFO: Video decoding: vaapi INFO: Texture (VA-API): 720x1520
VA-APIで対応しているハードウェアデコードのコーデックは vainfo コマンドなどで確認できます.
$ vainfo
Trying display: wayland
Trying display: x11
libva info: VA-API version 1.24.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_24
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.24 (libva 2.23.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 26.2.4 ()
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLDAndroid側は scrcpy --list-encoders で確認できます.
恐らく(hw)となっているところがハードウェアエンコード.このPCとAndroidの組み合わせだとH.264かH.265になりそうです.
$ scrcpy --list-encoders
scrcpy 5.0 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (usb) cfc15fe5 device P780
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 71.2 MB/s (733974 bytes in 0.010s)
[server] INFO: Device: [TINNO] Rakuten P780 (Android 11)
[server] INFO: List of video encoders:
--video-codec=h264 --video-encoder=c2.qti.avc.encoder (hw) [vendor]
--video-codec=h264 --video-encoder=OMX.qcom.video.encoder.avc (hw) [vendor] (alias for c2.qti.avc.encoder)
--video-codec=h264 --video-encoder=c2.android.avc.encoder (sw)
--video-codec=h264 --video-encoder=OMX.google.h264.encoder (sw) (alias for c2.android.avc.encoder)
--video-codec=h265 --video-encoder=c2.qti.hevc.encoder (hw) [vendor]
--video-codec=h265 --video-encoder=OMX.qcom.video.encoder.hevc (hw) [vendor] (alias for c2.qti.hevc.encoder)
--video-codec=h265 --video-encoder=c2.qti.hevc.encoder.cq (hw) [vendor]
--video-codec=h265 --video-encoder=OMX.qcom.video.encoder.hevc.cq (hw) [vendor] (alias for c2.qti.hevc.encoder.cq)
--video-codec=h265 --video-encoder=c2.android.hevc.encoder (sw)
--video-codec=vp8 --video-encoder=c2.android.vp8.encoder (sw)
--video-codec=vp8 --video-encoder=OMX.google.vp8.encoder (sw) (alias for c2.android.vp8.encoder)
--video-codec=vp9 --video-encoder=c2.android.vp9.encoder (sw)
--video-codec=vp9 --video-encoder=OMX.google.vp9.encoder (sw) (alias for c2.android.vp9.encoder)
[server] INFO: List of audio encoders:
--audio-codec=opus --audio-encoder=c2.android.opus.encoder (sw)
--audio-codec=aac --audio-encoder=c2.android.aac.encoder (sw)
--audio-codec=aac --audio-encoder=OMX.google.aac.encoder (sw) (alias for c2.android.aac.encoder)
--audio-codec=flac --audio-encoder=c2.android.flac.encoder (sw)
--audio-codec=flac --audio-encoder=OMX.google.flac.encoder (sw) (alias for c2.android.flac.encoder)laptopを少電力モードにして動画再生中のAndroidの画面を転送してみると訪れもなくなったようです.
ということて低スペックマシンなどで遅いと思っていた方なんかには嬉しい変更です.
Note | F-Droidで見かけたのですが,Android → Android の画面転送のできるAndroid版scrcpyもありました.(未検証) |
Likes
Reposts