Message ID | 20200113041130.30126-1-andriy.gelman@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [FFmpeg-devel,1/6] doc/v4l2_m2m: Add documentation | expand |
Context | Check | Description |
---|---|---|
andriy/ffmpeg-patchwork | success | Make fate finished |
On 13-01-2020 09:41 am, Andriy Gelman wrote: > From: Andriy Gelman <andriy.gelman@gmail.com> > > Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com> > --- > doc/decoders.texi | 12 ++++++++++++ > doc/encoders.texi | 27 +++++++++++++++++++++++++++ > 2 files changed, 39 insertions(+) > > diff --git a/doc/decoders.texi b/doc/decoders.texi > index f18226b3504..222f681810b 100644 > --- a/doc/decoders.texi > +++ b/doc/decoders.texi > @@ -86,6 +86,18 @@ AVS2-P2/IEEE1857.4 video decoder wrapper. > > This decoder allows libavcodec to decode AVS2 streams with davs2 library. > > +@section v4l2m2m > + > +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with > +hardware decoders. Depending on the hardware's capabilties the following decoders may be selected: > +h264, hevc, mpeg1, mpeg2, mpeg4, h263, vc1, vp8, and vp9. If these decoders are available through lavc API then replace ffmpeg with libavcodec. Is there a command for a user to identify which decoder/encoders are available? Also, s/capabilties/capabilities > + > +To use a specifix decoder append a _v4l2m2m suffix. For example to select h264 s/specifix/specific > +decoder use: > +@example > +ffmpeg -codec:v h264_v4l2m2m -i INPUT OUTPUT > +@end example > + > @c man end VIDEO DECODERS > > @chapter Audio Decoders > diff --git a/doc/encoders.texi b/doc/encoders.texi > index 61e674cf968..6cb43aedbce 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -3117,6 +3117,33 @@ required to produce a stream usable with all decoders. > > @end table > > +@section v4l2m2m > + > +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with hardware encoders. > +Depending on the hardware's capabilties the following encoders may be selected: > +mpeg4, h263, h264, hevc, and vp8. Same notes as for decoders. > + > +To use a specific encoder append _v4l2m2m suffix. For example to select h264 use: > +@example > +ffmpeg -i INPUT [-pix_fmt pixfmt] -codec:v h264_v4l2m2m OUTPUT > +@end example > +In some cases, it may be necessary to insert a pixel format conversion with > +@code{-pix_fmt} option. This is required if the pixel format of the input does not > +match the format of the encoder. If there is a mismatch, @command{ffmpeg} will > +exit and specify the required pixfmt to use. > + > +The following standard libavcodec options are supported: > +@itemize > +@item > +@option{g} / @option{gop_size} > +@item > +@option{qpel} > +@item > +@option{qmin} > +@item > +@option{qmax} > +@end itemize > + I see both the decoder and encoder wrappers have options for nb of capture and output buffers. Should document these with description, range and default values. > @section vc2 > > SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed at Thanks, Gyan
On Mon, 13. Jan 10:56, Gyan wrote: > > > On 13-01-2020 09:41 am, Andriy Gelman wrote: > > From: Andriy Gelman <andriy.gelman@gmail.com> > > > > Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com> > > --- > > doc/decoders.texi | 12 ++++++++++++ > > doc/encoders.texi | 27 +++++++++++++++++++++++++++ > > 2 files changed, 39 insertions(+) > > > > diff --git a/doc/decoders.texi b/doc/decoders.texi > > index f18226b3504..222f681810b 100644 > > --- a/doc/decoders.texi > > +++ b/doc/decoders.texi > > @@ -86,6 +86,18 @@ AVS2-P2/IEEE1857.4 video decoder wrapper. > > This decoder allows libavcodec to decode AVS2 streams with davs2 library. > > +@section v4l2m2m > > + > > +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with > > +hardware decoders. Depending on the hardware's capabilties the following decoders may be selected: > > +h264, hevc, mpeg1, mpeg2, mpeg4, h263, vc1, vp8, and vp9. > > If these decoders are available through lavc API then replace ffmpeg with > libavcodec. Thanks, will update. > Is there a command for a user to identify which decoder/encoders > are available? At the moment this doesn't exist. But I do have a patch that lists the supported encoders/decoders. I'll send this in the next version. > > Also, s/capabilties/capabilities > > > + > > +To use a specifix decoder append a _v4l2m2m suffix. For example to select h264 > s/specifix/specific will update both. > > > +decoder use: > > +@example > > +ffmpeg -codec:v h264_v4l2m2m -i INPUT OUTPUT > > +@end example > > + > > @c man end VIDEO DECODERS > > @chapter Audio Decoders > > diff --git a/doc/encoders.texi b/doc/encoders.texi > > index 61e674cf968..6cb43aedbce 100644 > > --- a/doc/encoders.texi > > +++ b/doc/encoders.texi > > @@ -3117,6 +3117,33 @@ required to produce a stream usable with all decoders. > > @end table > > +@section v4l2m2m > > + > > +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with hardware encoders. > > +Depending on the hardware's capabilties the following encoders may be selected: > > +mpeg4, h263, h264, hevc, and vp8. > > Same notes as for decoders. > > > + > > +To use a specific encoder append _v4l2m2m suffix. For example to select h264 use: > > +@example > > +ffmpeg -i INPUT [-pix_fmt pixfmt] -codec:v h264_v4l2m2m OUTPUT > > +@end example > > +In some cases, it may be necessary to insert a pixel format conversion with > > +@code{-pix_fmt} option. This is required if the pixel format of the input does not > > +match the format of the encoder. If there is a mismatch, @command{ffmpeg} will > > +exit and specify the required pixfmt to use. > > + > > +The following standard libavcodec options are supported: > > +@itemize > > +@item > > +@option{g} / @option{gop_size} > > +@item > > +@option{qpel} > > +@item > > +@option{qmin} > > +@item > > +@option{qmax} > > +@end itemize > > + > > I see both the decoder and encoder wrappers have options for nb of capture > and output buffers. Should document these with description, range and > default values. yep, will add this. Thanks,
diff --git a/doc/decoders.texi b/doc/decoders.texi index f18226b3504..222f681810b 100644 --- a/doc/decoders.texi +++ b/doc/decoders.texi @@ -86,6 +86,18 @@ AVS2-P2/IEEE1857.4 video decoder wrapper. This decoder allows libavcodec to decode AVS2 streams with davs2 library. +@section v4l2m2m + +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with +hardware decoders. Depending on the hardware's capabilties the following decoders may be selected: +h264, hevc, mpeg1, mpeg2, mpeg4, h263, vc1, vp8, and vp9. + +To use a specifix decoder append a _v4l2m2m suffix. For example to select h264 +decoder use: +@example +ffmpeg -codec:v h264_v4l2m2m -i INPUT OUTPUT +@end example + @c man end VIDEO DECODERS @chapter Audio Decoders diff --git a/doc/encoders.texi b/doc/encoders.texi index 61e674cf968..6cb43aedbce 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -3117,6 +3117,33 @@ required to produce a stream usable with all decoders. @end table +@section v4l2m2m + +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with hardware encoders. +Depending on the hardware's capabilties the following encoders may be selected: +mpeg4, h263, h264, hevc, and vp8. + +To use a specific encoder append _v4l2m2m suffix. For example to select h264 use: +@example +ffmpeg -i INPUT [-pix_fmt pixfmt] -codec:v h264_v4l2m2m OUTPUT +@end example +In some cases, it may be necessary to insert a pixel format conversion with +@code{-pix_fmt} option. This is required if the pixel format of the input does not +match the format of the encoder. If there is a mismatch, @command{ffmpeg} will +exit and specify the required pixfmt to use. + +The following standard libavcodec options are supported: +@itemize +@item +@option{g} / @option{gop_size} +@item +@option{qpel} +@item +@option{qmin} +@item +@option{qmax} +@end itemize + @section vc2 SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed at