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