美文网首页
ffmpeg用法简要记载

ffmpeg用法简要记载

作者: matlab2000 | 来源:发表于2017-08-15 10:09 被阅读0次

    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用法简要记载

          本文链接:https://www.haomeiwen.com/subject/rhjmrxtx.html