Xpra: Ticket #2079: H264 cannot be enabled

Fedora 28

Installed on client and server:

xpra-2.4.2-2.fc28.x86_64
xpra-udev-2.4.2-2.fc28.x86_64
xpra-html5-2.4.2-2.fc28.x86_64
xpra-codecs-freeworld-2.4.2-1.fc28.x86_64

ffmpeg, x264 etc are installed from rpmfusion.

Client command:

xpra start ssh://xxx@xxx.com --start-child=nautilus --encoding=h264 --exit-with-children

Connecting and the Nautilus window coming up is ok. In the xpra menu on the client, under Picture-Encoding, H264, VP9, VP8, MPEG4, WebP, H265, mpeg1, mpeg2 are all greyed out and unable to be selected. The tooltip popup says "H264 video codec (not available on this server)" when hovering the mouse above H264.

What needs to be done to get h264 encoding going??

...........................................

Server log:

2018-12-14 00:07:39,970 Error: cannot enable SSH socket upgrades:
2018-12-14 00:07:39,970  No module named paramiko
2018-12-14 00:07:39,971 cannot access python uinput module:
2018-12-14 00:07:39,971  No module named uinput
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
Failed to rename log file "/home/xxx/Xorg.S4803.log" to "/home/xxx/Xorg.S4803.log": No such file or directory
X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System:  4.18.10-200.fc28.x86_64
Current Operating System: Linux xxx 4.19.8-200.fc28.x86_64 #1 SMP Mon Dec 10 15:43:40 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-4.19.8-200.fc28.x86_64 root=UUID=61db72e1-8c6f-454e-a891-b9804047cd4a ro rhgb quiet LANG=en_NZ.UTF-8
Build Date: 01 November 2018  04:04:19PM
Build ID: xorg-x11-server 1.19.6-10.fc28
Current version of pixman: 0.34.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/home/xxx/Xorg.S4803.log", Time: Fri Dec 14 00:07:39 2018
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2018-12-14 00:07:40,251 created unix domain socket: /run/user/1000/xpra/xxx-1
2018-12-14 00:07:40,252 cannot create group socket '/run/xpra/xxx-1'
2018-12-14 00:07:40,252  [Errno 13] Permission denied
2018-12-14 00:07:40,350 pointer device emulation using XTest
2018-12-14 00:07:40,695  OpenGL is supported on this display
WARNING: no 'numpy' module, HyBi protocol will be slower
2018-12-14 00:07:40,751 serving html content from: /usr/share/xpra/www
2018-12-14 00:07:40,763 D-Bus notification forwarding is available
2018-12-14 00:07:40,786 Warning: webcam forwarding is disabled
2018-12-14 00:07:40,786  the virtual video directory '/sys/devices/virtual/video4linux' was not found
2018-12-14 00:07:40,786  make sure that the 'v4l2loopback' kernel module is installed and loaded
2018-12-14 00:07:40,786 found 0 virtual video devices for webcam forwarding
2018-12-14 00:07:40,793 pulseaudio server started with pid 4856
2018-12-14 00:07:40,793  private server socket path:
2018-12-14 00:07:40,793  '/run/user/1000/xpra/pulse-1/pulse/native'
2018-12-14 00:07:41,026 GStreamer version 1.14.1 for Python 2.7.15 64-bit
2018-12-14 00:07:41,105 ignored invalid default encoding option: h264
2018-12-14 00:07:41,109 xpra X11 version 2.4.2-r21077 64-bit
2018-12-14 00:07:41,110  uid=1000 (xxx), gid=1000 (xxx)
2018-12-14 00:07:41,110  running with pid 4807 on Linux Fedora 28 Twenty Eight
2018-12-14 00:07:41,110  connected to X11 display :1 with 24 bit colors
2018-12-14 00:07:41,203 xpra is ready.
2018-12-14 00:07:41,608 New unix-domain connection received on /run/user/1000/xpra/xxx-1
2018-12-14 00:07:41,932 New unix-domain connection received on /run/user/1000/xpra/xxx-1
2018-12-14 00:07:41,934 Handshake complete; enabling connection
2018-12-14 00:07:41,941 Error: encoding h264 is not supported by this server
2018-12-14 00:07:41,941  automatic picture encoding enabled, also available:
2018-12-14 00:07:41,941   png, png/P, png/L, rgb24, rgb32, jpeg, jpeg2000
2018-12-14 00:07:41,941 Python/Gtk2 Linux Fedora 28 Twenty Eight x11 client version 2.4.2-r21077 64-bit
2018-12-14 00:07:41,942  connected from 'xxx' as 'xxx' - 'xxx'
2018-12-14 00:07:42,012 setting key repeat rate from client: 500ms delay / 30ms interval
2018-12-14 00:07:42,013 setting keymap: rules=evdev, model=pc105, layout=us,us
2018-12-14 00:07:42,029 setting keyboard layout to 'us,us'
2018-12-14 00:07:42,054  client root window size is 1280x800 with 1 display:
2018-12-14 00:07:42,054   :0.0 (338x211 mm - DPI: 96x96) workarea: 1280x773 at 0x27
2018-12-14 00:07:42,054     monitor 1 (261x163 mm - DPI: 124x124)
2018-12-14 00:07:42,060 server virtual display now set to 1280x800
2018-12-14 00:07:42,068 DPI set to 15 x 19 (wanted 96 x 96)
2018-12-14 00:07:42,068  you may experience scaling problems, such as huge or small fonts, etc
2018-12-14 00:07:42,068  to fix this issue, try the dpi switch, or use a patched Xorg dummy driver
2018-12-14 00:07:42,104 client @25.220 server does not support h264 encoding and has switched to auto
2018-12-14 00:07:42,108 client @25.222 Xpra X11 server version 2.4.2-r21077 64-bit
2018-12-14 00:07:42,113 client @25.222  running on Linux Fedora 28 Twenty Eight
2018-12-14 00:07:42,221 client @25.336 server does not support xi input devices
2018-12-14 00:07:42,224 client @25.337  server uses: xtest
2018-12-14 00:07:42,263 New unix-domain connection received on /run/user/1000/xpra/xxx-1
2018-12-14 00:07:42,564 using pulseaudio device:
2018-12-14 00:07:42,564  'Monitor of Xpra Speaker'
2018-12-14 00:07:43,226 sound source using 'opus' audio codec
2018-12-14 00:07:51,578 printer forwarding enabled using postscript and pdf
2018-12-14 00:07:51,593 started command 'nautilus' with pid 4985
2018-12-14 00:07:51,594 15.6GB of system memory

..........................................

xpra start --encoding help
xpra server supports the following encodings:
(please wait, encoder initialization may take a few seconds)
WARNING: no 'numpy' module, HyBi protocol will be slower
2018-12-13 23:34:12,963 Warning: cannot load enc_x264 video encoder:
2018-12-13 23:34:12,963
2018-12-13 23:34:12,963 Warning: cannot load enc_vpx video encoder:
2018-12-13 23:34:12,964
2018-12-13 23:34:12,964 Warning: cannot load enc_x265 video encoder:
2018-12-13 23:34:12,964
2018-12-13 23:34:12,964 Warning: cannot load enc_ffmpeg video encoder:
2018-12-13 23:34:12,964
2018-12-13 23:34:12,964 init_csc_options() cannot add swscale csc
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/codecs/video_helper.py", line 310, in init_csc_options
    self.init_csc_option(mod)
  File "/usr/lib64/python2.7/site-packages/xpra/codecs/video_helper.py", line 320, in init_csc_option
    csc_module = get_codec(csc_name)
  File "/usr/lib64/python2.7/site-packages/xpra/codecs/loader.py", line 207, in get_codec
    assert loaded
AssertionError
 * png         Portable Network Graphics (lossless, 24bpp or 32bpp for transparency)
 * png/P       Portable Network Graphics (lossy, 8bpp colour)
 * png/L       Portable Network Graphics (lossy, 8bpp grayscale)
 * rgb         Raw RGB pixels, lossless, compressed using zlib or lz4 or lzo (24bpp or 32bpp for transparency)
 * jpeg        JPEG lossy compression
 * jpeg2000    JPEG 2000 lossy compression (slow)

............................................

python /usr/lib64/python2.7/site-packages/xpra/codecs/loader.py
codecs and csc modules found:
* csc_libyuv           :
* csc_swscale          : /usr/lib64/python2.7/site-packages/xpra/codecs/csc_swscale/colorspace_converter.so
* dec_avcodec2         : /usr/lib64/python2.7/site-packages/xpra/codecs/dec_avcodec2/decoder.so
* dec_jpeg             :
* dec_pillow           : /usr/lib64/python2.7/site-packages/xpra/codecs/pillow/decode.pyc
* dec_vpx              : /usr/lib64/python2.7/site-packages/xpra/codecs/vpx/decoder.so
* dec_webp             :
* enc_ffmpeg           : /usr/lib64/python2.7/site-packages/xpra/codecs/enc_ffmpeg/encoder.so
* enc_jpeg             :
* enc_pillow           : /usr/lib64/python2.7/site-packages/xpra/codecs/pillow/encode.pyc
* enc_vpx              : /usr/lib64/python2.7/site-packages/xpra/codecs/vpx/encoder.so
* enc_webp             :
* enc_x264             : /usr/lib64/python2.7/site-packages/xpra/codecs/enc_x264/encoder.so
* enc_x265             : /usr/lib64/python2.7/site-packages/xpra/codecs/enc_x265/encoder.so
* nvenc                :
codecs versions:
* PIL                             : 5.1.1
* avcodec2                        : 58.18.100
* dec_pillow                      : 5.1.1
* enc_pillow                      : 5.1.1
* ffmpeg                          : 58.18.100
* numpy                           : 1.14.5
* swscale                         : 5.1.100
* vpx                             : 1.7.0
* x264                            : 152
* x265                            : 2.7

.....................................................

/usr/lib64/python2.7/site-packages/xpra/codecs/video_helper.py
* csc
  - BGRX_to_BGR                   : swscale
  - BGRX_to_GBRP                  : swscale
  - BGRX_to_RGB                   : swscale
  - BGRX_to_RGBX                  : swscale
  - BGRX_to_XBGR                  : swscale
  - BGRX_to_XRGB                  : swscale
  - BGRX_to_YUV420P               : swscale
  - BGRX_to_YUV422P               : swscale
  - BGRX_to_YUV444P               : swscale
  - BGR_to_BGRX                   : swscale
  - BGR_to_GBRP                   : swscale
  - BGR_to_RGB                    : swscale
  - BGR_to_RGBX                   : swscale
  - BGR_to_XBGR                   : swscale
  - BGR_to_XRGB                   : swscale
  - BGR_to_YUV420P                : swscale
  - BGR_to_YUV422P                : swscale
  - BGR_to_YUV444P                : swscale
  - GBRP_to_BGR                   : swscale
  - GBRP_to_BGRX                  : swscale
  - GBRP_to_RGB                   : swscale
  - GBRP_to_RGBX                  : swscale
  - GBRP_to_XBGR                  : swscale
  - GBRP_to_XRGB                  : swscale
  - GBRP_to_YUV420P               : swscale
  - GBRP_to_YUV422P               : swscale
  - GBRP_to_YUV444P               : swscale
  - RGBX_to_BGR                   : swscale
  - RGBX_to_BGRX                  : swscale
  - RGBX_to_GBRP                  : swscale
  - RGBX_to_RGB                   : swscale
  - RGBX_to_XBGR                  : swscale
  - RGBX_to_XRGB                  : swscale
  - RGBX_to_YUV420P               : swscale
  - RGBX_to_YUV422P               : swscale
  - RGBX_to_YUV444P               : swscale
  - RGB_to_BGR                    : swscale
  - RGB_to_BGRX                   : swscale
  - RGB_to_GBRP                   : swscale
  - RGB_to_RGBX                   : swscale
  - RGB_to_XBGR                   : swscale
  - RGB_to_XRGB                   : swscale
  - RGB_to_YUV420P                : swscale
  - RGB_to_YUV422P                : swscale
  - RGB_to_YUV444P                : swscale
  - XBGR_to_BGR                   : swscale
  - XBGR_to_BGRX                  : swscale
  - XBGR_to_GBRP                  : swscale
  - XBGR_to_RGB                   : swscale
  - XBGR_to_RGBX                  : swscale
  - XBGR_to_XRGB                  : swscale
  - XBGR_to_YUV420P               : swscale
  - XBGR_to_YUV422P               : swscale
  - XBGR_to_YUV444P               : swscale
  - XRGB_to_BGR                   : swscale
  - XRGB_to_BGRX                  : swscale
  - XRGB_to_GBRP                  : swscale
  - XRGB_to_RGB                   : swscale
  - XRGB_to_RGBX                  : swscale
  - XRGB_to_XBGR                  : swscale
  - XRGB_to_YUV420P               : swscale
  - XRGB_to_YUV422P               : swscale
  - XRGB_to_YUV444P               : swscale
  - YUV420P_to_BGR                : swscale
  - YUV420P_to_BGRX               : swscale
  - YUV420P_to_RGB                : swscale
  - YUV420P_to_RGBX               : swscale
  - YUV420P_to_XBGR               : swscale
  - YUV420P_to_XRGB               : swscale
  - YUV420P_to_YUV422P            : swscale
  - YUV420P_to_YUV444P            : swscale
  - YUV422P_to_BGR                : swscale
  - YUV422P_to_BGRX               : swscale
  - YUV422P_to_RGB                : swscale
  - YUV422P_to_RGBX               : swscale
  - YUV422P_to_XBGR               : swscale
  - YUV422P_to_XRGB               : swscale
  - YUV422P_to_YUV420P            : swscale
  - YUV422P_to_YUV444P            : swscale
  - YUV444P_to_BGR                : swscale
  - YUV444P_to_BGRX               : swscale
  - YUV444P_to_GBRP               : swscale
  - YUV444P_to_RGB                : swscale
  - YUV444P_to_RGBX               : swscale
  - YUV444P_to_XBGR               : swscale
  - YUV444P_to_XRGB               : swscale
  - YUV444P_to_YUV420P            : swscale
  - YUV444P_to_YUV422P            : swscale
* decoding
  - h264_to_ARGB                  : dec_avcodec2
  - h264_to_BGRA                  : dec_avcodec2
  - h264_to_BGRX                  : dec_avcodec2
  - h264_to_GBRP                  : dec_avcodec2
  - h264_to_RGB                   : dec_avcodec2
  - h264_to_XRGB                  : dec_avcodec2
  - h264_to_YUV420P               : dec_avcodec2
  - h264_to_YUV422P               : dec_avcodec2
  - h264_to_YUV444P               : dec_avcodec2
  - h265_to_ARGB                  : dec_avcodec2
  - h265_to_BGRA                  : dec_avcodec2
  - h265_to_BGRX                  : dec_avcodec2
  - h265_to_GBRP                  : dec_avcodec2
  - h265_to_RGB                   : dec_avcodec2
  - h265_to_XRGB                  : dec_avcodec2
  - h265_to_YUV420P               : dec_avcodec2
  - h265_to_YUV422P               : dec_avcodec2
  - h265_to_YUV444P               : dec_avcodec2
  - mpeg1_to_YUV420P              : dec_avcodec2
  - mpeg2_to_YUV420P              : dec_avcodec2
  - mpeg4_to_YUV420P              : dec_avcodec2
  - vp8_to_YUV420P                : dec_avcodec2, dec_vpx
  - vp9_to_YUV420P                : dec_avcodec2, dec_vpx
  - vp9_to_YUV444P                : dec_avcodec2, dec_vpx
* encoding
  - BGRA_to_h264                  : x264
  - BGRX_to_h264                  : x264
  - YUV420P_to_h264               : x264
  - YUV420P_to_h264+mp4           : ffmpeg
  - YUV420P_to_h265               : x265
  - YUV420P_to_mpeg1              : ffmpeg
  - YUV420P_to_mpeg2              : ffmpeg
  - YUV420P_to_mpeg4+mp4          : ffmpeg
  - YUV420P_to_vp8                : vpx
  - YUV420P_to_vp8+webm           : ffmpeg
  - YUV420P_to_vp9                : vpx
  - YUV422P_to_h264               : x264
  - YUV444P_to_h264               : x264
  - YUV444P_to_h265               : x265
  - YUV444P_to_vp9                : vpx
  - csc-module
    - swscale                     : active
  - video-encoder
    - ffmpeg                      : active
    - vpx                         : active
    - x264                        : active
    - x265                        : active


Thu, 13 Dec 2018 15:48:04 GMT - Antoine Martin: status, description changed; resolution set

The rpmfusion packages are not supported. Use the official xpra.org packages and the problems will go away.


Sat, 23 Jan 2021 05:41:39 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2079