runner365 / ffmpeg_rtmp_h265

add h265 in rtmp/flv in ffmpeg
MIT License
217 stars 71 forks source link

Unable to compile #3

Closed shushu789 closed 1 year ago

shushu789 commented 1 year ago

Hello, when I use them in FFMpeg version 4.4.4 and 5.1.2, I can never compile. I use MSYS2 compiled by msys2 in Windows.No, I think it's my problem?Will get the following errors:

libavformat/flvdec.c:31:10: fatal error: libavutil/dict_internal.h: No such file or directory 31 | #include "libavutil/dict_internal.h" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. CC libavformat/format.o make: *** [ffbuild/common.mak:81: libavformat/flvdec.o] Error 1 make: *** Waiting for unfinished jobs.... libavformat/flvenc.c: In function 'write_metadata': libavformat/flvenc.c:375:19: error: implicit declaration of function 'av_dict_iterate'; did you mean 'av_codec_iterate'? [-Werror=implicit-function-declaration] 375 | while ((tag = av_dict_iterate(s->metadata, tag))) { | ^~~~~~~~~~~~~~~ | av_codec_iterate libavformat/flvenc.c:375:17: warning: assignment to 'const AVDictionaryEntry *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 375 | while ((tag = av_dict_iterate(s->metadata, tag))) { | ^ libavformat/flvenc.c: At top level: libavformat/flvenc.c:1184:7: error: unknown type name 'FFOutputFormat' 1184 | const FFOutputFormat ff_flv_muxer = { | ^~~~~~~~~~~~~~ libavformat/flvenc.c:1185:5: error: field name not in record or union initializer 1185 | .p.name = "flv", | ^ libavformat/flvenc.c:1185:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1185:23: warning: initialization of 'int' from 'const char *' makes integer from pointer without a cast [-Wint-conversion] 1185 | .p.name = "flv", | ^~~~~ libavformat/flvenc.c:1185:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1185:23: error: initializer element is not computable at load time libavformat/flvenc.c:1185:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1186:5: error: field name not in record or union initializer 1186 | .p.long_name = NULL_IF_CONFIG_SMALL("FLV (Flash Video)"), | ^ libavformat/flvenc.c:1186:5: note: (near initialization for 'ff_flv_muxer') In file included from ./libavutil/common.h:575, from ./libavutil/avutil.h:296, from ./libavcodec/codec_desc.h:24, from libavformat/flvenc.c:27: libavformat/flvenc.c:1186:44: warning: excess elements in scalar initializer 1186 | .p.long_name = NULL_IF_CONFIG_SMALL("FLV (Flash Video)"), | ^~~~~~~~~~~~~~~~~~~ ./libavutil/internal.h:117:36: note: in definition of macro 'NULL_IF_CONFIG_SMALL' 117 | # define NULL_IF_CONFIG_SMALL(x) x | ^ libavformat/flvenc.c:1186:44: note: (near initialization for 'ff_flv_muxer') 1186 | .p.long_name = NULL_IF_CONFIG_SMALL("FLV (Flash Video)"), | ^~~~~~~~~~~~~~~~~~~ ./libavutil/internal.h:117:36: note: in definition of macro 'NULL_IF_CONFIG_SMALL' 117 | # define NULL_IF_CONFIG_SMALL(x) x | ^ libavformat/flvenc.c:1187:5: error: field name not in record or union initializer 1187 | .p.mime_type = "video/x-flv", | ^ libavformat/flvenc.c:1187:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1187:23: warning: excess elements in scalar initializer 1187 | .p.mime_type = "video/x-flv", | ^~~~~~~~~~~~~ libavformat/flvenc.c:1187:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1188:5: error: field name not in record or union initializer 1188 | .p.extensions = "flv", | ^ libavformat/flvenc.c:1188:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1188:23: warning: excess elements in scalar initializer 1188 | .p.extensions = "flv", | ^~~~~ libavformat/flvenc.c:1188:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1189:5: error: field name not in record or union initializer 1189 | .priv_data_size = sizeof(FLVContext), | ^ libavformat/flvenc.c:1189:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1189:23: warning: excess elements in scalar initializer 1189 | .priv_data_size = sizeof(FLVContext), | ^~~~~~ libavformat/flvenc.c:1189:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1190:5: error: field name not in record or union initializer 1190 | .p.audio_codec = CONFIG_LIBMP3LAME ? AV_CODEC_ID_MP3 : AV_CODEC_ID_ADPCM_SWF, | ^ libavformat/flvenc.c:1190:5: note: (near initialization for 'ff_flv_muxer') In file included from ./libavutil/bswap.h:35, from ./libavutil/intreadwrite.h:25, from libavformat/flvenc.c:22: ./config.h:498:27: warning: excess elements in scalar initializer 498 | #define CONFIG_LIBMP3LAME 0 | ^ libavformat/flvenc.c:1190:23: note: in expansion of macro 'CONFIG_LIBMP3LAME' 1190 | .p.audio_codec = CONFIG_LIBMP3LAME ? AV_CODEC_ID_MP3 : AV_CODEC_ID_ADPCM_SWF, | ^~~~~~~~~~~~~~~~~ ./config.h:498:27: note: (near initialization for 'ff_flv_muxer') 498 | #define CONFIG_LIBMP3LAME 0 | ^ libavformat/flvenc.c:1190:23: note: in expansion of macro 'CONFIG_LIBMP3LAME' 1190 | .p.audio_codec = CONFIG_LIBMP3LAME ? AV_CODEC_ID_MP3 : AV_CODEC_ID_ADPCM_SWF, | ^~~~~~~~~~~~~~~~~ libavformat/flvenc.c:1191:5: error: field name not in record or union initializer 1191 | .p.video_codec = AV_CODEC_ID_FLV1, | ^ libavformat/flvenc.c:1191:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1191:23: warning: excess elements in scalar initializer 1191 | .p.video_codec = AV_CODEC_ID_FLV1, | ^~~~~~~~~~~~~~~~ libavformat/flvenc.c:1191:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1192:5: error: field name not in record or union initializer 1192 | .init = flv_init, | ^ libavformat/flvenc.c:1192:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1192:23: warning: excess elements in scalar initializer 1192 | .init = flv_init, | ^~~~~~~~ libavformat/flvenc.c:1192:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1193:5: error: field name not in record or union initializer 1193 | .write_header = flv_write_header, | ^ libavformat/flvenc.c:1193:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1193:23: warning: excess elements in scalar initializer 1193 | .write_header = flv_write_header, | ^~~~~~~~~~~~~~~~ libavformat/flvenc.c:1193:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1194:5: error: field name not in record or union initializer 1194 | .write_packet = flv_write_packet, | ^ libavformat/flvenc.c:1194:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1194:23: warning: excess elements in scalar initializer 1194 | .write_packet = flv_write_packet, | ^~~~~~~~~~~~~~~~ libavformat/flvenc.c:1194:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1195:5: error: field name not in record or union initializer 1195 | .write_trailer = flv_write_trailer, | ^ libavformat/flvenc.c:1195:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1195:23: warning: excess elements in scalar initializer 1195 | .write_trailer = flv_write_trailer, | ^~~~~~~~~~~~~~~~~ libavformat/flvenc.c:1195:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1196:5: error: field name not in record or union initializer 1196 | .deinit = flv_deinit, | ^ libavformat/flvenc.c:1196:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1196:23: warning: excess elements in scalar initializer 1196 | .deinit = flv_deinit, | ^~~~~~~~~~ libavformat/flvenc.c:1196:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1197:5: error: field name not in record or union initializer 1197 | .check_bitstream= flv_check_bitstream, | ^ libavformat/flvenc.c:1197:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1197:23: warning: excess elements in scalar initializer 1197 | .check_bitstream= flv_check_bitstream, | ^~~~~~~~~~~~~~~~~~~ libavformat/flvenc.c:1197:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1198:5: error: field name not in record or union initializer 1198 | .p.codec_tag = (const AVCodecTag* const []) { | ^ libavformat/flvenc.c:1198:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1198:23: warning: excess elements in scalar initializer 1198 | .p.codec_tag = (const AVCodecTag* const []) { | ^ libavformat/flvenc.c:1198:23: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1201:5: error: field name not in record or union initializer 1201 | .p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS | | ^ libavformat/flvenc.c:1201:5: note: (near initialization for 'ff_flv_muxer') In file included from libavformat/flvenc.c:31: libavformat/avformat.h:480:29: warning: excess elements in scalar initializer 480 | #define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */ | ^~~~~~ libavformat/flvenc.c:1201:23: note: in expansion of macro 'AVFMT_GLOBALHEADER' 1201 | .p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS | | ^~~~~~~~~~~~~~~~~~ libavformat/avformat.h:480:29: note: (near initialization for 'ff_flv_muxer') 480 | #define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */ | ^~~~~~ libavformat/flvenc.c:1201:23: note: in expansion of macro 'AVFMT_GLOBALHEADER' 1201 | .p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS | | ^~~~~~~~~~~~~~~~~~ libavformat/flvenc.c:1203:5: error: field name not in record or union initializer 1203 | .p.priv_class = &flv_muxer_class, | ^ libavformat/flvenc.c:1203:5: note: (near initialization for 'ff_flv_muxer') libavformat/flvenc.c:1203:23: warning: excess elements in scalar initializer 1203 | .p.priv_class = &flv_muxer_class, | ^ libavformat/flvenc.c:1203:23: note: (near initialization for 'ff_flv_muxer') cc1.exe: some warnings being treated as errors make: *** [ffbuild/common.mak:81: libavformat/flvenc.o] Error 1

Excuse me, thank you