[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-devel-list
Subject:    Looking for advice - ffmpeg-free and wf-recorder
From:       Bob Hepple <bob.hepple () gmail ! com>
Date:       2022-12-17 5:29:25
Message-ID: CAHzpm2hH-0LdiYzBSn6mAqyXwbdNf0=gLeSxuHtTno_ABtsOMA () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


I am the packager for wf-recorder (a wl-roots/wayland screen recorder)
which presently resides in rpmfusion - it uses proprietary ffmpeg codecs by
default (libx246).

Now that we have ffmpeg-free we have an opportunity to move wf-recorder to
the mainstream and change the default codec to the non-proprietary
libopenh264. This woud be in rawhide/f38 and on.

This all works fine in testing on f37. The fly in the ointment is that if
ffmpeg/rpmfusion is installed in place of ffmpeg-free, then wf-recorder can
no longer access libopenh264 and fails with an error. There is a workaround
in the use of the option -c libx264.

Several solutions occur to me and I'm looking for guidance on which path to
take:

0. leave wf-recorder where it is, in rpmfusion as in f37 and earlier.
A. compile wf-recorder as shipped by upstream with the default libx264 -
the '-c libopenh264' workaround would be needed if ffmpeg-free is
installed. This annoys users who install stock fedora.
B. compile wf-recorder with libopenh264 as the default - the '-c libx264'
workaround would be needed if ffmpeg/rpmfusion is installed and would annoy
those users.
C. leave wf-recorder in rpmfusion and create a wf-recorder-free package by
analogy to ffmpeg (this might be obscure as it's not likely to get much
publicity - and annoy everyone sooner or later)
D. the best option might be to choose a codec common to both ffmpeg and
ffmpeg-free. I'm not terribly au fait with the various codecs so which
would I choose? These codecs appear to be in both packages:

 h263_v4l2m2m         V4L2 mem2mem H.263 encoder wrapper (codec h263)
 h264_amf             AMD AMF H.264 Encoder (codec h264)
 h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel
Quick Sync Video acceleration) (codec h264)
 h264_v4l2m2m         V4L2 mem2mem H.264 encoder wrapper (codec h264)
 h264_vaapi           H.264/AVC (VAAPI) (codec h264)
 hevc_amf             AMD AMF HEVC encoder (codec hevc)
 hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
 hevc_qsv             HEVC (Intel Quick Sync Video acceleration) (codec
hevc)
 hevc_v4l2m2m         V4L2 mem2mem HEVC encoder wrapper (codec hevc)
 hevc_vaapi           H.265/HEVC (VAAPI) (codec hevc)
 libaom-av1           libaom AV1 (codec av1)
libopenjpeg          OpenJPEG JPEG 2000 (codec jpeg2000)
 librav1e             librav1e AV1 (codec av1)
 libsvtav1            SVT-AV1(Scalable Video Technology for AV1) encoder
(codec av1)
 libtheora            libtheora Theora (codec theora)
 libvpx               libvpx VP8 (codec vp8)
 libvpx-vp9           libvpx VP9 (codec vp9)
 libwebp_anim         libwebp WebP image (codec webp)
 libwebp              libwebp WebP image (codec webp)
 mjpeg_qsv            MJPEG (Intel Quick Sync Video acceleration) (codec
mjpeg)
 mjpeg_vaapi          MJPEG (VAAPI) (codec mjpeg)
 mpeg2_qsv            MPEG-2 video (Intel Quick Sync Video acceleration)
(codec mpeg2video)
 mpeg2_vaapi          MPEG-2 (VAAPI) (codec mpeg2video)
 mpeg4_v4l2m2m        V4L2 mem2mem MPEG4 encoder wrapper (codec mpeg4)
 vp8_v4l2m2m          V4L2 mem2mem VP8 encoder wrapper (codec vp8)
 vp8_vaapi            VP8 (VAAPI) (codec vp8)
 vp9_qsv              VP9 video (Intel Quick Sync Video acceleration)
(codec vp9)
 vp9_vaapi            VP9 (VAAPI) (codec vp9)

[Attachment #5 (text/html)]

<div dir="ltr"><div>I am the packager for wf-recorder (a wl-roots/wayland screen \
recorder) which presently resides in rpmfusion - it uses proprietary ffmpeg codecs by \
default (libx246).</div><div><br></div><div>Now that we have ffmpeg-free we have an \
opportunity to move wf-recorder to the mainstream and change the default codec to the \
non-proprietary libopenh264. This woud be in rawhide/f38 and \
on.<br></div><div><br></div><div>This all works fine in testing on f37. The fly in \
the ointment is that if ffmpeg/rpmfusion is installed in place of ffmpeg-free, then \
wf-recorder can no longer access libopenh264 and fails with an error. There is a \
workaround in the use of the option -c libx264.  </div><div><br></div><div>Several \
solutions occur to me and I&#39;m looking for guidance on which path to \
take:</div><div><br></div><div>0. leave wf-recorder where it is, in rpmfusion as in \
f37 and earlier.<br></div><div>A. compile wf-recorder as shipped by upstream with the \
default libx264 - the &#39;-c libopenh264&#39; workaround would be needed if \
ffmpeg-free is installed. This annoys users who install stock fedora.</div><div>B. \
compile wf-recorder with libopenh264 as the default - the &#39;-c libx264&#39; \
workaround would be needed if ffmpeg/rpmfusion is installed and would annoy those \
users.</div><div>C. leave wf-recorder in rpmfusion and create a wf-recorder-free \
package by analogy to ffmpeg (this might be obscure as it&#39;s not likely to get \
much publicity - and annoy everyone sooner or later)<br></div><div>D. the best option \
might be to choose a codec common to both ffmpeg and ffmpeg-free. I&#39;m not \
terribly au fait with the various codecs so which would I choose? These codecs appear \
to be in both packages:</div><div><br></div><div>  h263_v4l2m2m             V4L2 \
mem2mem H.263 encoder wrapper (codec h263)<br>  h264_amf                   AMD AMF \
H.264 Encoder (codec h264)<br>  h264_nvenc                NVIDIA NVENC H.264 encoder \
(codec h264)<br>  h264_qsv                   H.264 / AVC / MPEG-4 AVC / MPEG-4 part \
10 (Intel Quick Sync Video acceleration) (codec h264)<br>  h264_v4l2m2m             \
V4L2 mem2mem H.264 encoder wrapper (codec h264)<br>  h264_vaapi                \
H.264/AVC (VAAPI) (codec h264)<br>  hevc_amf                   AMD AMF HEVC encoder \
(codec hevc)<br>  hevc_nvenc                NVIDIA NVENC hevc encoder (codec \
hevc)<br>  hevc_qsv                   HEVC (Intel Quick Sync Video acceleration) \
(codec hevc)<br>  hevc_v4l2m2m             V4L2 mem2mem HEVC encoder wrapper (codec \
hevc)<br>  hevc_vaapi                H.265/HEVC (VAAPI) (codec hevc)<br>  libaom-av1  \
libaom AV1 (codec av1)</div><div>libopenjpeg               OpenJPEG JPEG 2000 (codec \
jpeg2000)<br>  librav1e                   librav1e AV1 (codec av1)<br>  libsvtav1     \
SVT-AV1(Scalable Video Technology for AV1) encoder (codec av1)<br>  libtheora         \
libtheora Theora (codec theora)<br>  libvpx                      libvpx VP8 (codec \
vp8)<br>  libvpx-vp9                libvpx VP9 (codec vp9)<br>  libwebp_anim          \
libwebp WebP image (codec webp)<br>  libwebp                     libwebp WebP image \
(codec webp)<br>  mjpeg_qsv                  MJPEG (Intel Quick Sync Video \
acceleration) (codec mjpeg)<br>  mjpeg_vaapi               MJPEG (VAAPI) (codec \
mjpeg)<br>  mpeg2_qsv                  MPEG-2 video (Intel Quick Sync Video \
acceleration) (codec mpeg2video)<br>  mpeg2_vaapi               MPEG-2 (VAAPI) (codec \
mpeg2video)<br>  mpeg4_v4l2m2m            V4L2 mem2mem MPEG4 encoder wrapper (codec \
mpeg4)<br>  vp8_v4l2m2m               V4L2 mem2mem VP8 encoder wrapper (codec \
vp8)<br>  vp8_vaapi                  VP8 (VAAPI) (codec vp8)<br>  vp9_qsv             \
VP9 video (Intel Quick Sync Video acceleration) (codec vp9)<br>  vp9_vaapi            \
VP9 (VAAPI) (codec vp9)</div><div><br></div><div><br></div></div>


[Attachment #6 (text/plain)]

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic