1. To debug FFMPEG, add
-- Enable-Debug
-- Disable-ASM
Note: These two configuration options should be added during x264 debugging before debugging.
2. Make install will execute the Strip command, and the strip command will remove the symbols (symbol table) of FFMPEG, which is equivalent to the default option install -- disable-Debug, how can we avoid removing the previous configuration from the Strip command?
Add the -- disable-stripping option to configure.
View the original post discussion address: Use GDB to debug FFMPEG and discuss the cause of the "No debuging symbols find" error:
Http://bbs.chinavideo.org/archiver? Tid-54.html
3. When debugging FFMPEG, You Should debug ffmpeg_g instead of FFMPEG. Why?
4. When debugging, you cannot enter a function for One-Step debugging. How can this problem be solved?
Remove-O from the config. Mak file;
The more effective method is to add -- disable-stripping to configure.
5. What should I do if I fail to execute the function in sequence during debugging?
Disable optimization When configuring configure, that is, add -- disable-optimize.
6. When you use ffplay to generate a video in h264 format, the playback speed will be improved. solution:
Do not use FFMPEG transcoding to generate videos in h264 format. Use a container that contains h264 videos to generate an audio/video stream format.
That is, do not generate pure h264 code streams, but generate files in formats such as MKV.
7. When I add my function to x264, x264 is compiled successfully and can generate a playable h264 code stream. However, when FFmpeg is used to call x264, an error occurs:
Error: libx264 not found
View the config. log file:
Undefined to 'get *'
Collect2: LD returned 1 exit status
SRCS = Common/MC. c Common/predict. c Common/pixel. c Common/macroblock. c \ common/frame. c Common/DCT. c Common/CPU. c Common/cabac. c \
Common/common. c Common/mdate. c Common/set. c \
Common/quant. c Common/VLC. c \
Encoder/analyze. c encoder/ME. c encoder/ratecontrol. c \
Encoder/set. c encoder/macroblock. c encoder/cabac. c \
Encoder/cavlc. c encoder/encoder. c
The function I added is defined in the x264.c file, where analyze. the C file calls this function. However, libx264 does not include x264.c. Therefore, when FFMPEG calls libx264, the function definition cannot be found during compilation, this function is undefined reference.
The virtualbox shared folder filesystem doesn't allow symlinks, unfortunately.
FFmpeg debugging knowledge