[Libav-user] Building ffmpeg with openh264 on Ubuntu

Info || Non-Lethal Applications info at non-lethal-applications.com
Wed Mar 2 22:21:35 CET 2016


Hi there,

I wrote an email with the same problem a while ago.

> On 02 Mar 2016, at 22:17, <muller at vki.com> <muller at vki.com> wrote:
> 
> Hello,
> 
> I've been tasked with building FFMPEG with Cisco's OpenH264. I'm doing this on Ubuntu Linux 64.
> 
> My understanding is that all I need is
> 
> > configure --enable-libopenh264
> > make
> 
> I have 2 questions:
> 
> 1) The building process proceeded almost flawlessly, until I hit the errors below. Can anybody suggest a workaround?
> 
> 2) I did NOT use either --enable-gpl or --enable-nonfree. I had been using libx264 up to now but want to make sure I will be using Cisco's OpenH264. The way I select H264 is with the code
> 
>       avformat_alloc_output_context2 (&oc,NULL,"mp4",NULL);
>       oc->oformat->video_codec = AV_CODEC_ID_H264;
> 
> This has been working just fine. Once I enable openh264 can I still use the line above to select H264, or is the enumerated type above strictly for libx264? If so, what change should I make to use openh264?
> 
> Thanks.
> 
> Here are the errors:
> 
> libavcodec/libopenh264enc.c:54:85: error:  Ç SM_AUTO_SLICE Ç  undeclared here (not in a function)
>      { "slice_mode", "set slice mode", OFFSET(slice_mode), AV_OPT_TYPE_INT, { .i64 = SM_AUTO_SLICE }, SM_SINGLE_SLICE, SM_RESERVED, VE, "slice_mode" },
>                                                                                      ^
> libavcodec/libopenh264enc.c:56:87: error:  Ç SM_ROWMB_SLICE Ç  undeclared here (not in a function)
>          { "rowmb", "one slice per row of macroblocks", 0, AV_OPT_TYPE_CONST, { .i64 = SM_ROWMB_SLICE }, 0, 0, VE, "slice_mode" },
>                                                                                        ^
> libavcodec/libopenh264enc.c:58:68: error:  Ç SM_DYN_SLICE Ç  undeclared here (not in a function)
>          { "dyn", "Dynamic slicing", 0, AV_OPT_TYPE_CONST, { .i64 = SM_DYN_SLICE }, 0, 0, VE, "slice_mode" },
>                                                                     ^
> libavcodec/libopenh264enc.c:198:28: error:  Ç SSpatialLayerConfig Ç  has no member named  Ç sSliceCfg Ç
>      param.sSpatialLayers[0].sSliceCfg.uiSliceMode               = s->slice_mode;
>                             ^
> libavcodec/libopenh264enc.c:198:38: error: request for member  Ç uiSliceMode Ç  in something not a structure or union
>      param.sSpatialLayers[0].sSliceCfg.uiSliceMode               = s->slice_mode;
>                                       ^
> libavcodec/libopenh264enc.c:199:28: error:  Ç SSpatialLayerConfig Ç  has no member named  Ç sSliceCfg Ç
>      param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = avctx->slices;
>                             ^
> libavcodec/libopenh264enc.c:199:38: error: request for member  Ç sSliceArgument Ç  in something not a structure or union
>      param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = avctx->slices;
>                                       ^
> libavcodec/libopenh264enc.c:199:53: error: request for member  Ç uiSliceNum Ç  in something not a structure or union
>      param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceNum = avctx->slices;
>                                                      ^
> libavcodec/libopenh264enc.c:204:36: error:  Ç SSpatialLayerConfig Ç  has no member named  Ç sSliceCfg Ç
>              param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = s->max_nal_size;
>                                     ^
> libavcodec/libopenh264enc.c:204:46: error: request for member  Ç sSliceArgument Ç  in something not a structure or union
>              param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = s->max_nal_size;
>                                               ^
> libavcodec/libopenh264enc.c:204:61: error: request for member  Ç uiSliceSizeConstraint Ç  in something not a structure or union
>              param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = s->max_nal_size;


Carl Eugen’s suggestion was to downgrade OpenH264.
Here’s the original quote:

	Google suggests to downgrade your openh264 version.

	The alternative is to send a patch to fix the issue 
	in FFmpeg.

	Carl Eugen


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20160302/82118723/attachment.html>


More information about the Libav-user mailing list