[Libav-user] Crash while running muxer.c example with a minimal configured version of ffmpeg

Nuno Santos nuno.santos at imaginando.pt
Thu Jun 24 19:14:03 EEST 2021


I’m learning how to do muxing with ffmpeg. I’m looking at the muxer.c example.

I’ve compiled ffmpeg with a minimal set of dependencies:

./configure --extra-cflags="-mmacosx-version-min=10.12" --disable-all --disable-programs --enable-gpl --enable-small --enable-avcodec --enable-swscale --enable-swresample --enable-avformat --enable-muxer=h264,mp4 --enable-demuxer=h264,mp4 --enable-encoder=libx264,aac --enable-decoder=h264,aac --enable-encoder=h264_videotoolbox --enable-parser=h264 --enable-libx264 --enable-hwaccel=h264_videotoolbox --enable-videotoolbox --enable-protocol=file --extra-cflags="-I/usr/local/include/" --extra-cxxflags="-I/usr/local/include/" --extra-ldflags="-L/usr/local/lib/“

make examples

It is important to refer that I’ve ffmpeg installed via brew in my Mac system

Muxing example works out of the box.

However, when I copy the libs created during the compile process to a new folder and try to compile only the muxer.c example:

gcc -Wall -g -o main main.c -L./ -lavformat -lavcodec -lavutil -lx264 -lswscale -lswresample -framework CoreVideo -framework CoreMedia -framework AVFoundation -framework VideoToolbox -framework AppKit -liconv -lz

The compilations goes fine but it crashes while running:


memset(par, 0, sizeof(*par));           par:0x8000000000000000000

1 _platform_bzero$VARIANT$Haswell                                                (x86_64) /usr/lib/system/libsystem_platform.dylib     0x7fff205ad4d5 
2 codec_parameters_reset                                                         codec_par.c                                       35  0x100213ee2    
3 avcodec_parameters_from_context                                                codec_par.c                                       93  0x100213fab    
4 open_video(AVFormatContext *, AVCodec const *, OutputStream *, AVDictionary *) main.cpp                                          478 0x10000dc9a    
5 main                                                                           main.cpp                                          627 0x10000d30d    
6 start                                                                          (x86_64) /usr/lib/system/libdyld.dylib                0x7fff20585f5d 

My guess is that the version of ffmpeg that I’ve compiled is not being used by the examples. Instead, the example is using the system installed ffmpeg which has something that I haven’t included in the config. 

Why? Because if I take the “-L./“ parameter from the compilation command, it will use the systems libs and this time, it won’t crash.

I’ve been tinkering around for hours and I don’t find any other explanation.

Does anyone has guess of what could be happening or missing in my configuration?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20210624/464fbe57/attachment.htm>

More information about the Libav-user mailing list