scrcpyを使ってAndroidスマートフォンの動画をPCで視聴する

追記)Android 12以降ではscrcpyでも転送された画面は真っ黒になります．

今日最終回でしたが，マンガUp!というアプリで他のsiteより12時間早く配信されているのに気づきました．でもモバイルアプリでないと視聴できません．手元ではスマートフォンしか無いので画面が小さい．

TVアニメ「その着せ替え人形は恋をする」公式サイト

マンガUP！ | SQUARE ENIX

そういえば以前試したscrcpyだと画面キャプチャ禁止のアプリでも大丈夫だったのでこれでPCに画面転送してそちらで視聴すればいつもの画面で視聴できるのではと試してみました．

Note

音声についてはscrcpyのaudioブランチを自分でbuildして --forward-audio オプションを利用することで転送できそう ですが私は未確認で現在はBluetooth A2DP-source でPCに転送しています．3.5mm Audio cableなどでも良さそうです．

まずは以前試したページを参考にscrcpyを使えるようにします．

PCでAndroid端末の画面転送と操作が出来るscrcpy – matoken’s meme

さくっと動いたのですが，スマートフォンとPCのアスペクト比が違うので黒枠が出来ていまいちです．

$ /bin/scrcpy
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 5.7 MB/s (34015 bytes in 0.006s)
[server] INFO: Device: motorola moto g31(w) (Android 11)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.3.5
INFO: Trilinear filtering enabled
INFO: Initial texture: 2400x1080

PCの解像度は 1366×720 でスマートフォンは 2480×1080 なのでスマートフォン画面を真ん中だけくり抜くと良さそうです． --crop オプションを使ってみます．

$ scrcpy --crop=1080:1920:0:$(( (2480-1920)/2 )) \ (1)
--encoder OMX.google.h264.encoder \ (2)
--max-size=1366 \ (3)
--fullscreen (4)
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 7.2 MB/s (34015 bytes in 0.005s)
[server] INFO: Device: motorola moto g31(w) (Android 11)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.3.5
INFO: Trilinear filtering enabled
INFO: Initial texture: 1360x768

--crop で真ん中をくり抜き

エンコーダにPCでハードウェア対応しているH.264を利用

サイズをPCに合わせて制限

フルスクリーン表示

うまくいきました :)

他のPCでは動かないけどスマートフォンでは動くものでも応用が効きそうです．

環境

$ dpkg-query -W scrcpy adb
adb 1:10.0.0+r36-7
scrcpy 1.17-1