ffmpeg用法简要记载

monaServer:

下载后直接可以处理rtmp 264的,在www目录下建立目录,比如想要创建rtmp://ip/live/test,

那么就在www目录下建立live/test目录,然后放一个空的main.lua在下面,当然,也可以在里面写代码,

打印相关信息,比如用户连接、退出,推送的媒体什么的,适合调试使用。

audacity:

播放音频文件原始流

导入,然后找到文件,填写参数,播放就可以了。

ffmpeg

-i 输入源

-y 覆盖输出文件

-ss 指定开始时间,hh:mm:ss[.xxx]格式的记录时间也支持

-t 指定长度,hh:mm:ss[.xxx]格式的记录时间也支持

-s 800x600  表示限定大小,用cif之类的符号也可以

-r 30        表示frame rate

-g 30        表示gop size idr帧间隔

-c:a pcm_s16be -ab 320k -ar 44100 -ac 1 表示转码音频 -ab 带宽 -ar 采样率 -ac 通道数

看信息:

ffmpeg -i S06.mp4 类似ffprobe的功能

图片和视频互转:

支持的图片格式包括:PGM. PPM. PAM. PGMYUV. JPEG. GIF. PNG. TIFF. SGI

ffmpeg -i vid.mp4 frame%03d.png -r 20

每秒生成20张图片。我们还可以把生成的这些图片重新整合成视频

ffmpeg -i frame%3d.png out.mp4

生成hls:

ffmpeg -i vid.mp4 -strict -2 -c:v libx264 -c:a aac -f hls test.m3u8

把视频源切成若干个.ts格式的视频片段然后生成一个.m3u8的切片文件索引提供给html5的video做hls直播源

转成png

ffmpeg -i vid.mp4 -y -f image2 -t 0.001 -ss 10 -s 1920x1080 haha.png

转成gif

ffmpeg -i vid.mp4 -vframes 5 -y -f gif out5.gif

这里是将视频的前5帧转换为gif

ffmpeg -ss 00:00:00.000 -i vid.mp4 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 out6.gif

将输入的文件从(-ss)设定的时间开始以10帧频率,输出到320x240大小的 gif 中,时间长度为-t 设定的参数。

截取一段码流:

ffmpeg -ss 00:00:00 -i "2.mp4" -acodec copy -vcodec copy -t 00:01:00 3.mp4

从文件 2.mp4f 第 00:00 分秒开始,截取 01:00 的时间,其中视频和音频解码不变,输出文件名为 3.mp4

提取视频裸流:

ffmpeg -i S06.mp4 -vn -f s16le  -acodec pcm_s16le s16le.raw

提取到YUV:

ffmpeg -i S06.mp4 -c:v rawvideo -pix_fmt yuv420p out.yuv

提取音频裸流:

ffmpeg -i S06.mp4 -c:v rawvideo -pix_fmt yuv420p out.yuv

转换格式:

不允许B帧 另外,-bf也可以控制b帧数目

ffmpeg -i S06.mp4 -c:v libx265  -c:a copy  -x265-params bframes=0 hevc.mp4

ffmpeg -i S06.mp4 -c:v libx264  -c:a copy  -x264-params bframes=0 avc.mp4

推rtmp流:

ffmpeg -re -stream_loop -50 -i S06.mp4 -c copy -f flv rtmp://localhost/live/test

-re 防止推送太快

-stream_loop 推送多少次,否则只会推送到文件结束

rtmp保存文件:

ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

打水印:

ffmpeg -i vid.mp4 -i icon.png -filter_complex overlay="(main_w/2)-(overlay_w/2):(main_h/2)-(overlay_h)/2" output222.mp4

在视频的中间位置添加一个水印。

具体使用太复杂,参考官方文档和表达式语法

滤镜:

看 http://www.jianshu.com/p/137c37561477

vlc:

推rtsp流:

vlc -I rc S06.mp4 -vvv --loop --sout "#rtp{sdp=rtsp://:554/}"

然后其他端可以过来点播这个

mp4box:

详细文档请见https://gpac.wp.imt.fr/mp4box/mp4box-documentation/

一般使用 mp4box -h 获取大致的帮助,然后使用具体的帮助信息

切割:

-split 可以按时间 大小和起止时间切视频文件。

-cat 可以加文件

-hint 添加hint轨道,一般用于Darwin服务器流rtsp流使用。

导出信息:

-info 打印文件信息

-info trackid 打印指定轨道信息

-diso -drtp -dcr 导出xml

-sdp 导出sdp

导出媒体数据:

-raw TrackID

-raws TrackID:N 每个通道采用到一个文件,如果要提取单独采样,就要指定N

你可能感兴趣的:(ffmpeg用法简要记载)