FFMPEG工具相关

前言:因为工作和一些原因,偶尔会接触到ffmpeg工具,主要用于发流和转码。将这一过程中遇到的一些问题和总结写下来,以防后面绞尽脑汁找资料。持续更新中。。。。

ffmpeg(官方)介绍:FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anythingthat humans and machines have created.
这个anything介绍的,无所不能。

ffmpeg安装及使用:
目前可以在三大系统上安装,直接运行,也可采用下载源码编译运行的方式安装,在windows和linux上亲测可行。
源码编译安装步骤:

  • 下载地址http://ffmpeg.org/download.html
  • 解压方式 bzip2 -d ffmpeg-4.2.2.tar.bz2 得到ffmpeg-4.2.2.tar
    解压tar文件 tar -xvf ffmpeg-4.2.2.tar得到源码文件夹
  • 进入源码文件夹,运行./configure --premix=/usr/local/ffmpeg --enable-gpl 后面可选不同的编解码库,例如:–enable-libxavs 。
  • make&&make install

ffmpeg编解码相关:
首先介绍整体流程:源视频–解封装-解码-编码-封装–输出视频
对应的命令行格式:ffmpeg -i input -vcodec libxavs -r 60 -s 1920x1080 -y output
-i:输入文件
-y:生成文件且覆盖文件
-vcodec:指定生成视频编解码格式
-r:指定帧率
-s:指定分辨率

ffmpeg剪切相关:
命令行格式:ffmpeg -i input -ss 00:00:00 -t 00:00:30 -y output
ss:指定剪切开始时间starttime
t:指定时间段duration

ffmpeg发流相关:
1.ffmpeg可以发送的流包括:udp,rtp,rtmp。
2.发送的基本格式为:ffmpeg -re -i 源码流 -f 文件类型 地址
注:
-re代表按照帧率发送
-i表示input,输入
-vcodec copy:防止ffmpeg重新编码输入的流
-f表示filetype,文件类型
最后面接上对应的协议和地址
例:
udp(h264):ffmpeg -re -i video.h264 -vcodec copy -f h264 udp://2333.233.233.223:6666
udp(mpeg2)::ffmpeg -re -i chunwan.h264 -vcodec mpeg2video -f mpeg2video udp://233.233.233.223:6666
rtp(h264):ffmpeg -re -i chunwan.h264 -vcodec copy -f rtp rtp://233.233.233.223:6666>test.sdp
rtmp(h264):ffmpeg -re -i chunwan.h264 -vcodec copy -f flv rtmp://localhost/oflaDemo/livestream

3.播放发送的码流:ffplay -f 文件类型 地址
例:
udp(h264):ffplay -f h264 udp://233.233.233.223:6666
udp(mpeg2):ffplay -vcodec mpeg2video udp://233.233.233.223:6666
rtp(h264):ffplay test.sdp
rtmp(h264):ffplay “rtmp://localhost/oflaDemo/livestream live=1”
ffmpeg:ffmpeg -re -i chunwan.h264 -pix_fmt yuv420p –f sdl xxxx.yuv -vcodec copy -f flv rtmp://localhost/oflaDemo/livestream

常用命令:
将大的ts切为小的带m3u8索引的小切片:
ffmpeg -i 1573449141421_sc99_01_sim95.ts -c copy -vcodec copy -f hls -hls_time 10 -hls_wrap 100 -hls_list_size 100 1573449141421_sc99_01_sim95\index.m3u8

你可能感兴趣的:(工具)