FFmpeg debugging knowledge

Source: Internet
Author: User
Tags virtualbox shared folder

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.