[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