遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/235)
<a href="https://www.bestpractices.dev/projects/235"><img src="https://www.bestpractices.dev/projects/235/badge"></a>
FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure [FATE](fate.ffmpeg.org) across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.
It contains libavcodec, libavutil, libavformat, libavfilter, libavdevice, libswscale and libswresample which can be used by applications. As well as ffmpeg, ffserver, ffplay and ffprobe which can be used by end users for transcoding, streaming and playing.
https://ffmpeg.org/developer.html includes references to coding guidelines https://ffmpeg.org/developer.html#Coding-Rules-1.
https://trac.ffmpeg.org/ticket/5689 - an illustration of an individual ticket.
FFmpeg supports make install/make uninstall. Also, there are a number of GNU/Linux distributions shipping FFmpeg packages: https://ffmpeg.org/download.html. This page also includes some Windows and OS/X builds.
As seen above, the adding of tests is currently quite informal. Documentation is present at https://ffmpeg.org/developer.html, but it is sometimes vague.
As noted above, as FFmpeg supports a variety of toolchains, some of which omit bogus warnings, and that too sometimes only for specific versions of the toolchain, it is infeasible to reach a 0 warnings policy across all FATE clients. Generally, on "standard" toolchains, such as GNU/Linux OR OS X + gcc OR clang, the warning count does not exceed 100, and most warning cleanup work addresses such toolchains.
It is thus counterproductive to enforce a maximal strictness policy wrt warnings in FFmpeg. However, it should be noted that some developers experiment with additional warning combinations, and when the warnings stop being too noisy, the project is open to introducing these flags into the default set of warning flags.
Same remarks as above. In particular, SHA-1 is used for creating identifiers, and is not used for a security purpose.
FFmpeg uses Coverity (scan.coverity.com), which checks for a variety of common C programming mistakes.
Fuzzing is certainly performed quite regularly on FFmpeg: https://security.googleblog.com/2014/01/ffmpeg-and-thousand-fixes.html, http://obe.tv/about-us/obe-blog/item/26-fuzzing-ffmpeg-for-fun-and-profit. Note that this is being done by third parties.
后退