音频转换:

1.转换amr到mp3:

ffmpeg -i test.amr test.mp3

2.转换amr到wav:

ffmpeg -i test.amr test.wav

3.转换mp3到wav:

ffmpeg -i test.mp3 -f wav test.wav

视频转换:

1.转换wmv到mp4:

ffmpeg -i sample.wmv -vcodec libx264 -acodec aac out.mp4

2.抓取H264视频流:

ffmpeg -i sample.flv -vcodec copy -vbsf h264_mp4toannexb -an out.h264

  • vbsf为过滤方法,即将flv规定的H264组织方式转换回H264协议书规定的字节流格式
  • -an 禁掉源文件中的音频,因为出来的码流不需要音频
  • vcodec copy这个是必然的

3.将H264视频流转为mp4:

ffmpeg -i sample.h264 -f mp4 haha.mp4

4.接收rtsp并存为视频文件:

ffmpeg -rtsp_transport tcp -i rtsp://streaming1.osu.edu/media2/ufsap/ufsap.mov -vcodec copy -acodec copy -t 30 -f mp4 rtsp-out.mp4

  • -rtsp_transport tcp:指明传输方式是tcp方式(也可以是udp)

  • -t 30:指明我录制30秒

5.切分视频并生成M3U8文件

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 20 -hls_list_size 0 -hls_wrap 0 output.m3u8

  • -i 输入视频文件
  • -c:v 输出视频格式
  • -c:a 输出音频格式
  • -strict
  • -f hls 输出视频为HTTP Live Stream(M3U8)
  • -hls_time 设置每片的长度,默认为2,单位为秒
  • -hls_list_size 设置播放列表保存的最多条目,设置为0会保存所有信息,默认为5
  • -hls_wrap 设置多少片之后开始覆盖,如果设置为0则不会覆盖,默认值为0。这个选项能够避免在磁盘上存储过多的片,而且能够限制写入磁盘的最多片的数量。

6.截取一张352x240尺寸大小,格式为jpg的图片

ffmpeg -i input_file -y -f image2 -t 0.001 -s 352x240 output.jpg

7.把视频的前30帧转换成一个Animated Gif

ffmpeg -i input_file -vframes 30 -y -f gif output.gif

8.在视频的第8.01秒出截取230x240的缩略图

ffmpeg -i input_file -y -f mjpeg -ss 8 -t 0.001 -s 320x240 output.jpg

9.分离视频音频流

1
2
ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流
ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流

10.视频剪切

1
2
ffmpeg -i test.avi -r 1 -f image2 image.jpeg //视频截图
ffmpeg -i input.avi -ss 0:1:30 -t 0:0:20 -vcoder copy -acoder copy output.avi //剪切视频 -r 提取图像频率, -ss 开始时间, -t 持续时间