jquery网站模板下载,做的网站显示不了背景图片,自建网站 好处,卖服务器网站源码适逢FFmpeg6.1发布#xff0c;准备深入学习下FFmpeg#xff0c;将会写下系列学习记录。
在此列出主要学习资料#xff0c;后续再不列#xff0c;感谢这些大神的探路和分享#xff0c;特别是雷神#xff0c;致敬#xff01; 《FFmpeg从入门到精通》 《深入理解FFmpeg》 …适逢FFmpeg6.1发布准备深入学习下FFmpeg将会写下系列学习记录。
在此列出主要学习资料后续再不列感谢这些大神的探路和分享特别是雷神致敬 《FFmpeg从入门到精通》 《深入理解FFmpeg》 雷霄骅_FFMPEG,FFmpeg,视频质量评价-CSDN博客 Documentation (ffmpeg.org) chatGPT
1、FFmpeg组成
命令行工具ffmpeg主命令行工具ffplay基于SDL的播放器ffprobe获取多媒体信息基础库libavcodec编解码库libavformat封装、解封库libavfilter滤镜库libavdevice多媒体输入/输出设备libavutil通用工具libswresample音频转换libswscale图像转换libpostproclibavfilter后期效果处理 2、FFmpeg支持
源代码中查看支持情况 ./configure --list-encoders 查看编码器支持./configure --list-decoders查看解码器支持./configure --list-muxers查看封装支持./configure --list-demuxers查看解封装支持./configure --list-protocols查看通信协议支持 编译好的FFmpeg中查看支持情况
ffmpeg -codecs查看全部编解码器ffmpeg -encoders查看编码器ffmpeg -decoders查看解码器ffmpeg -filters查看滤镜ffmpeg --help full查看全部信息 ffmpeg -h encoder/decoder /muxer/demuxer/filterxxx 查看具体参数
3、常用指令需要啥功能问chatGPT是最好的
提取音频流
ffmpeg -i in.mp4 -vn -acodec copy out.aac
提取H264视频流
ffmpeg -i in.mp4 -vcodec copy -an out.h264
提取H265视频流
ffmpeg -i in.mp4 -vcodec copy -an -bsf hevc_mp4toannexb -f hevc out.hevc
添加滤镜效果
ffmpeg -i input -vf filter_nameparameters output
4、使用FFmpeg
命令行直接使用编译出的三个程序即可。
二次开发则需要编译出的库在下面博文介绍了编译方法。
适用于嵌入式arm的ffmpeg编解码-CSDN博客
这里看下我编译出来的文件如下图 可以发现install中有四个文件夹
bin: 命令行程序
include: 头文件
lib: 共享库
share: 例程及文档
再看一下install中具体的文件树
├── bin
│ ├── ffmpeg
│ ├── ffplay
│ └── ffprobe
├── include
│ ├── libavcodec
│ │ ├── ac3_parser.h
│ │ ├── adts_parser.h
│ │ ├── avcodec.h
│ │ ├── avdct.h
│ │ ├── avfft.h
│ │ ├── bsf.h
│ │ ├── codec_desc.h
│ │ ├── codec.h
│ │ ├── codec_id.h
│ │ ├── codec_par.h
│ │ ├── d3d11va.h
│ │ ├── defs.h
│ │ ├── dirac.h
│ │ ├── dv_profile.h
│ │ ├── dxva2.h
│ │ ├── jni.h
│ │ ├── mediacodec.h
│ │ ├── packet.h
│ │ ├── qsv.h
│ │ ├── vdpau.h
│ │ ├── version.h
│ │ ├── version_major.h
│ │ ├── videotoolbox.h
│ │ ├── vorbis_parser.h
│ │ └── xvmc.h
│ ├── libavdevice
│ │ ├── avdevice.h
│ │ ├── version.h
│ │ └── version_major.h
│ ├── libavfilter
│ │ ├── avfilter.h
│ │ ├── buffersink.h
│ │ ├── buffersrc.h
│ │ ├── version.h
│ │ └── version_major.h
│ ├── libavformat
│ │ ├── avformat.h
│ │ ├── avio.h
│ │ ├── version.h
│ │ └── version_major.h
│ ├── libavutil
│ │ ├── adler32.h
│ │ ├── aes_ctr.h
│ │ ├── aes.h
│ │ ├── ambient_viewing_environment.h
│ │ ├── attributes.h
│ │ ├── audio_fifo.h
│ │ ├── avassert.h
│ │ ├── avconfig.h
│ │ ├── avstring.h
│ │ ├── avutil.h
│ │ ├── base64.h
│ │ ├── blowfish.h
│ │ ├── bprint.h
│ │ ├── bswap.h
│ │ ├── buffer.h
│ │ ├── camellia.h
│ │ ├── cast5.h
│ │ ├── channel_layout.h
│ │ ├── common.h
│ │ ├── cpu.h
│ │ ├── crc.h
│ │ ├── csp.h
│ │ ├── des.h
│ │ ├── detection_bbox.h
│ │ ├── dict.h
│ │ ├── display.h
│ │ ├── dovi_meta.h
│ │ ├── downmix_info.h
│ │ ├── encryption_info.h
│ │ ├── error.h
│ │ ├── eval.h
│ │ ├── executor.h
│ │ ├── ffversion.h
│ │ ├── fifo.h
│ │ ├── file.h
│ │ ├── film_grain_params.h
│ │ ├── frame.h
│ │ ├── hash.h
│ │ ├── hdr_dynamic_metadata.h
│ │ ├── hdr_dynamic_vivid_metadata.h
│ │ ├── hmac.h
│ │ ├── hwcontext_cuda.h
│ │ ├── hwcontext_d3d11va.h
│ │ ├── hwcontext_drm.h
│ │ ├── hwcontext_dxva2.h
│ │ ├── hwcontext.h
│ │ ├── hwcontext_mediacodec.h
│ │ ├── hwcontext_opencl.h
│ │ ├── hwcontext_qsv.h
│ │ ├── hwcontext_vaapi.h
│ │ ├── hwcontext_vdpau.h
│ │ ├── hwcontext_videotoolbox.h
│ │ ├── hwcontext_vulkan.h
│ │ ├── imgutils.h
│ │ ├── intfloat.h
│ │ ├── intreadwrite.h
│ │ ├── lfg.h
│ │ ├── log.h
│ │ ├── lzo.h
│ │ ├── macros.h
│ │ ├── mastering_display_metadata.h
│ │ ├── mathematics.h
│ │ ├── md5.h
│ │ ├── mem.h
│ │ ├── motion_vector.h
│ │ ├── murmur3.h
│ │ ├── opt.h
│ │ ├── parseutils.h
│ │ ├── pixdesc.h
│ │ ├── pixelutils.h
│ │ ├── pixfmt.h
│ │ ├── random_seed.h
│ │ ├── rational.h
│ │ ├── rc4.h
│ │ ├── replaygain.h
│ │ ├── ripemd.h
│ │ ├── samplefmt.h
│ │ ├── sha512.h
│ │ ├── sha.h
│ │ ├── spherical.h
│ │ ├── stereo3d.h
│ │ ├── tea.h
│ │ ├── threadmessage.h
│ │ ├── timecode.h
│ │ ├── time.h
│ │ ├── timestamp.h
│ │ ├── tree.h
│ │ ├── twofish.h
│ │ ├── tx.h
│ │ ├── uuid.h
│ │ ├── version.h
│ │ ├── video_enc_params.h
│ │ ├── video_hint.h
│ │ └── xtea.h
│ ├── libswresample
│ │ ├── swresample.h
│ │ ├── version.h
│ │ └── version_major.h
│ └── libswscale
│ ├── swscale.h
│ ├── version.h
│ └── version_major.h
├── lib
│ ├── libavcodec.so - libavcodec.so.60.31.102
│ ├── libavcodec.so.60 - libavcodec.so.60.31.102
│ ├── libavcodec.so.60.31.102
│ ├── libavdevice.so - libavdevice.so.60.3.100
│ ├── libavdevice.so.60 - libavdevice.so.60.3.100
│ ├── libavdevice.so.60.3.100
│ ├── libavfilter.so - libavfilter.so.9.12.100
│ ├── libavfilter.so.9 - libavfilter.so.9.12.100
│ ├── libavfilter.so.9.12.100
│ ├── libavformat.so - libavformat.so.60.16.100
│ ├── libavformat.so.60 - libavformat.so.60.16.100
│ ├── libavformat.so.60.16.100
│ ├── libavutil.so - libavutil.so.58.29.100
│ ├── libavutil.so.58 - libavutil.so.58.29.100
│ ├── libavutil.so.58.29.100
│ ├── libswresample.so - libswresample.so.4.12.100
│ ├── libswresample.so.4 - libswresample.so.4.12.100
│ ├── libswresample.so.4.12.100
│ ├── libswscale.so - libswscale.so.7.5.100
│ ├── libswscale.so.7 - libswscale.so.7.5.100
│ ├── libswscale.so.7.5.100
│ └── pkgconfig
│ ├── libavcodec.pc
│ ├── libavdevice.pc
│ ├── libavfilter.pc
│ ├── libavformat.pc
│ ├── libavutil.pc
│ ├── libswresample.pc
│ └── libswscale.pc
└── share├── ffmpeg│ ├── examples│ │ ├── avio_http_serve_files.c│ │ ├── avio_list_dir.c│ │ ├── avio_read_callback.c│ │ ├── decode_audio.c│ │ ├── decode_filter_audio.c│ │ ├── decode_filter_video.c│ │ ├── decode_video.c│ │ ├── demux_decode.c│ │ ├── encode_audio.c│ │ ├── encode_video.c│ │ ├── extract_mvs.c│ │ ├── filter_audio.c│ │ ├── hw_decode.c│ │ ├── Makefile│ │ ├── mux.c│ │ ├── qsv_decode.c│ │ ├── qsv_transcode.c│ │ ├── README│ │ ├── remux.c│ │ ├── resample_audio.c│ │ ├── scale_video.c│ │ ├── show_metadata.c│ │ ├── transcode_aac.c│ │ ├── transcode.c│ │ ├── vaapi_encode.c│ │ └── vaapi_transcode.c│ ├── ffprobe.xsd│ ├── libvpx-1080p50_60.ffpreset│ ├── libvpx-1080p.ffpreset│ ├── libvpx-360p.ffpreset│ ├── libvpx-720p50_60.ffpreset│ └── libvpx-720p.ffpreset└── man├── man1│ ├── ffmpeg.1│ ├── ffmpeg-all.1│ ├── ffmpeg-bitstream-filters.1│ ├── ffmpeg-codecs.1│ ├── ffmpeg-devices.1│ ├── ffmpeg-filters.1│ ├── ffmpeg-formats.1│ ├── ffmpeg-protocols.1│ ├── ffmpeg-resampler.1│ ├── ffmpeg-scaler.1│ ├── ffmpeg-utils.1│ ├── ffplay.1│ ├── ffplay-all.1│ ├── ffprobe.1│ └── ffprobe-all.1└── man3├── libavcodec.3├── libavdevice.3├── libavfilter.3├── libavformat.3├── libavutil.3├── libswresample.3└── libswscale.3以前在某个地方看到说so库的后缀中可以看到版本号从ffmpeg的lib中看到这个不一致也就是这个规则不存在的。 拿到这个install文件实际就相当于一个ffmpeg的sdk了利用它就开发自己的程序了。重点看看头文件中的函数究竟给我们提供了怎样的接口函数、怎么使用就是难点了。