赞
踩
通过ffmpeg -i命令查看视频基本信息
- $ ffmpeg -i C0439.MP4
- ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
- built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
- configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
- libavutil 58. 29.100 / 58. 29.100
- libavcodec 60. 31.102 / 60. 31.102
- libavformat 60. 16.100 / 60. 16.100
- libavdevice 60. 3.100 / 60. 3.100
- libavfilter 9. 12.100 / 9. 12.100
- libswscale 7. 5.100 / 7. 5.100
- libswresample 4. 12.100 / 4. 12.100
- libpostproc 57. 3.100 / 57. 3.100
- [mov,mp4,m4a,3gp,3g2,mj2 @ 000001bf832a1c00] st: 0 edit list: 1 Missing key frame while searching for timestamp: 1001
- [mov,mp4,m4a,3gp,3g2,mj2 @ 000001bf832a1c00] st: 0 edit list 1 Cannot find an index entry before timestamp: 1001.
- [aist#0:1/pcm_s16be @ 000001bf832a9840] Guessed Channel Layout: stereo
- Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C0439.MP4':
- Metadata:
- major_brand : XAVC
- minor_version : 16785407
- compatible_brands: XAVCmp42iso2
- creation_time : 2020-02-06T10:25:07.000000Z
- Duration: 00:05:20.32, start: 0.000000, bitrate: 207003 kb/s
- Stream #0:0[0x1](und): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p10le(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], 200008 kb/s, 59.94 fps, 59.94 tbr, 60k tbn (default)
- Metadata:
- creation_time : 2020-02-06T10:25:07.000000Z
- handler_name : Video Media Handler
- vendor_id : [0][0][0][0]
- encoder : AVC Coding
- Side data:
- displaymatrix: rotation of -90.00 degrees
- Stream #0:1[0x2](und): Audio: pcm_s16be (twos / 0x736F7774), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
- Metadata:
- creation_time : 2020-02-06T10:25:07.000000Z
- handler_name : Sound Media Handler
- vendor_id : [0][0][0][0]
- Stream #0:2[0x3](und): Data: none (rtmd / 0x646D7472), 5401 kb/s (default)
- Metadata:
- creation_time : 2020-02-06T10:25:07.000000Z
- handler_name : Timed Metadata Media Handler
- timecode : 17:43:44:32
- At least one output file must be specified
-
ffmpeg -i C0439.MP4 -vn -acodec pcm_s16le -ar 44100 -ac 1 audio01.wav
“-vn”:禁用视频流,只提取音频。
“-acodec pcm_s16le”:指定音频编解码器为 PCM 16 位有符号整数。
“-ar 44100”:指定音频采样率为 44100 Hz。
“-ac 1”:指定音频通道数为1。
- $ ffmpeg -i audio01.wav
- ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
- built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
- configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
- libavutil 58. 29.100 / 58. 29.100
- libavcodec 60. 31.102 / 60. 31.102
- libavformat 60. 16.100 / 60. 16.100
- libavdevice 60. 3.100 / 60. 3.100
- libavfilter 9. 12.100 / 9. 12.100
- libswscale 7. 5.100 / 7. 5.100
- libswresample 4. 12.100 / 4. 12.100
- libpostproc 57. 3.100 / 57. 3.100
- [aist#0:0/pcm_s16le @ 000001cb17a41e00] Guessed Channel Layout: mono
- Input #0, wav, from 'audio01.wav':
- Metadata:
- encoder : Lavf60.16.100
- Duration: 00:05:20.32, bitrate: 705 kb/s
- Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 1 channels, s16, 705 kb/s
- At least one output file must be specified
-
FFmpeg项目由 Fabrice Bellard在2000年创立。到目前为止,FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。Ffmpeg(FastForward Mpeg)是一款遵循GPL的开源软件,在音视频处理方面表现十分优秀,几乎囊括了现存所有的视音频格式的编码,解码、转码、混合、过滤及播放。作为最受欢迎的视频和图像处理软件,它被来自各行各业的不同公司所广泛使用。同时也是一款跨平台的软件,完美兼容Linux、Windows、Mac OSX等平台。其实它由3大部件组成,号称音视频处理工具三剑客:
Ffmpeg 应该是 FFmpeg 工具集中最核心的利器,支持多种多样的编码器、解码器、封装格式、滤镜功能。FFmpeg框架的基本组成包含AVFormat、AVCodec、AVFilter、AVDevice、AVUtil等模块库,结构图如下:
AVFormat中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,如MP4、FLV、KV、TS等文件封装格式,RTMP、RTSP、MMS、HLS等网络协议封装格式。FFmpeg是否支持某种媒体封装格式,取决于编译时是否包含了该格式的封装库。根据实际需求,可进行媒体封装格式的扩展,增加自己定制的封装格式,即在AVFormat中增加自己的封装处理模块。
AVCodec中实现了目前多媒体领域绝大多数常用的编解码格式,即支持编码,也支持解码。AVCodec除了支持MPEG4、AAC、MJPEG等自带的媒体编解码格式之外,还支持第三方的编解码器,如H.264(AVC)编码,需要使用x264编码器;H.265(HEVC)编码,需要使用x264编码器;MP3(mp3lame)编码,需要使用libmp3lame编码器。如果希望增加自己的编码格式,或者硬件编解码,则需要在AVCodec中增加相应的编解码模块。
AVFilter库提供了一个通用的音频、视频、字幕等滤镜处理框架。在AVFilter中,滤镜框架可以有多个输入和多个输出。
swresample模块提供了高级别的音频重采样API。例如允许操作音频采样、音频通道布局转换与布局调整。
swscale模块提供了高级别的图像转换API,例如它允许进行图像缩放和像素格式转换,常见于将图像从1080p转换成720p或者480p等的缩放,或者将图像数据从YUV420p转换成YUYV,或者YUV转RGB等图像格式转换。
对于输入,以下选项通常是自动识别的,但也可以强制设定。
FFMPEG的某些选项可以对一个特定的媒体流起作用,这种情况下需要在选项后面增加一个流标识。流标识允许以下几种格式:
假如要设定第二个音频流为copy,则需要指定-codec:a:1 copy
-filter_simple 添加简单滤镜
-filter_complex FILTER 添加复杂滤镜
简单的说,ffprobe 是一个多媒体流分析工具。它从多媒体流中收集信息,并且以人类和机器可读的形式打印出来。它可以用来检测多媒体流的容器类型,以及每一个多媒体流的格式和类型。它可以作为一个独立的应用来使用,也可以结合文本过滤器执行更复杂的处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。