查看ffmpeg支持的格式
- 封装格式
ffmpeg -formats > formats.txt
结果保存在当前目录下的formats.txt
, 从中可查询到相关格式,比如
DE asf ASF (Advanced / Active Streaming Format)
DE flv FLV (Flash Video)
E mp4 MP4 (MPEG-4 Part 14)
- 编解码格式
ffmpeg -codecs > codecs.txt
- 编码器格式
ffmpeg -encoders > encoders.txt
结果保存在当前目录下的encoders.txt
文件中,可从中查询支持的格式,比如
V..... libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
A..... aac AAC (Advanced Audio Coding)
A..... libmp3lame libmp3lame MP3 (MPEG audio layer 3) (codec mp3)
- 解码器格式
ffmpeg -decoders > decoders.txt
- 协议格式
ffmpeg -protocols > protocols.txt
结果举例:
Supported file protocols:
Input:
...
hls
...
rtp
...
rtmp
Output:
...
rtp
...
rtmp
...
查看文件的信息
ffmpeg -i sample.mp4
将rtmp流保存成文件
ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c copy hks.flv
ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c copy hks.mp4
将文件以rtmp流的方式推到服务器(比如nginx)
ffmpeg -re -i sample.flv -acodec copy -vcodec copy -f flv rtmp://localhost:1935/live/test
ffmpeg -re -i sample.mp4 -acodec copy -vcodec copy -f flv rtmp://localhost:1935/live/test
提取视频或音频
- 提取视频
ffmpeg -i sample.mp4 -vcodec copy -an video.mp4
- 提取音频
ffmpeg -i sample.mp4 -acodec copy -vn audio.aac
ffmpeg -i sample.mp4 -acodec libmp3lame -vn audio.mp3
编解码
- 将aac解码并保存为wav文件
ffmpeg -i audio.aac audio.wav
将视频转换为图片
- 将视频转换为图片序列
ffmpeg -i sample.mp4 output%d.jpg
- 将视频的指定片段转换为gif文件
ffmpeg -i sample.mp4 -ss 3 -t 5 -s 320x240 -r 6 -f gif out.gif -y
将sample.mp4
文件,从第3
秒开始,取时长为5
秒的视频,将其转换为分辨率为320*240
,帧率为6
帧/秒的gif
文件。
直播流中进行截图
ffmpeg.exe
-probesize 32768
-i "rtmp://192.168.2.245:1936/live/192.168.2.233.stream live=1"
-y
-t 0.001
-ss 1
-f image2
-r 1
./rtmp.jpg
-ss 指定从什么时间开始
-t 时长
-r 帧率
注意: rtmp流后的 live=1是必须的
- rtmp拉流
ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c copy dump.flv
mp4 转换为 flv
ffmpeg -i input.mp4 -acodec copy -vcodec copy -r 25 -s 640x480 output.flv
ffmpeg -i input.mp4 -acodec copy -vcodec h264 -r 25 -s 640x480 output.flv
ffmpeg -i input.mp4 -acodec copy -vcodec h264 -r 25 -s 640x480 -qmin 25 output.flv
qmin的取值范围[-1, 69]