前言
ffmpeg
是一个非常强大的视频处理工具,它可以转换任何格式的媒体文件,并且还可以用自己的AudioFilter以及VideoFilter进行处理和编辑。并且支持多平台安装比较简单,适用于处理各种视频文件。
安装
本文主要讲解在Linux下的使用,因此在Linux中安装执行下面命令即可。
代码语言:javascript复制apt-get install ffmpeg
常用示例
直接将MP4文件转成m3u8:
代码语言:javascript复制ffmpeg -i bbskali.mp4 -hls_time 10 -hls_list_size 0 -hls_segment_filename ene_d.ts bbskali.m3u8
如果已经是ts文件了,则只需要执行下方命令即可:
代码语言:javascript复制ffmpeg -i bbskali.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 outputd.ts
将大量分割成ts文件的视频片段全部转换成mp4视频片段 --- 直接上批处理脚本:
代码语言:javascript复制for %%a in ("D:VideoProjectsNewDemo*.ts") do ffmpeg -i "%%a" -vcodec copy -vcodec copy -f mp4 "D:VideoProjectsNewDemoNewMP4%%~na.mp4"
pause
上面的 ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 test.mp4
是将ts文件转换为mp4文件的意思,再在其之上套了一层for循环,%%a就是每个文件,转换命令最末尾的%%~na是将文件保持原来的文件名的情况下进行输出,存放到指定文件夹的意思。
mp4视频转flv
代码语言:javascript复制ffmpeg -i bbskali.mp4 -acodec copy -vcodec copy -f flv bbskali.flv
将本地指定的demo.ts文件进行推流:
代码语言:javascript复制ffmpeg -re -i demo.ts -c copy -f mpegts udp://127.0.0.1:1997
强制把输出视频文件帧率改为 24 fps:
代码语言:javascript复制ffmpeg -i bbskali.avi -r 24 output.avi
对视频每个一秒截一个图并存在本地:
代码语言:javascript复制ffmpeg -i bbskali.mp4 -f image2 -vf fps=fps=1 out%d.png
每隔20秒截一个图:
代码语言:javascript复制ffmpeg -i bbskali.mp4 -f image2 -vf fps=fps=1/20 out%d.png
将视频转换为图片,一帧一图:
代码语言:javascript复制ffmpeg -i bbskali.mp4 outM.png
提取视频文件中的音频数据,并保存为文件
代码语言:javascript复制ffmpeg -i bbskali.mp4 -vn -acodec copy output.m4a
给视频添加水印
代码语言:javascript复制ffmpeg -i pm.mp4 -i xxx.png -filter_complex "overlay=5:5" out.mp4
把视频的前30帧转换成一个Animated Gif
代码语言:javascript复制ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
截取指定时间的缩微图
代码语言:javascript复制ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg
将一段音频与一段视频混合
代码语言:javascript复制ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
使用ffmpeg录像屏幕
代码语言:javascript复制ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024x768 ~/test.avi
其中,-vd x11:0,0
指录制所使用的偏移为 x=0
和 y=0
,-s
1024×768
指录制视频的大小为 1024×768。录制的视频文件为 test.avi
,将保存到用户主目录中
如果你只想录制一个应用程序窗口或者桌面上的一个固定区域,那么可以指定偏移位置和区域大小。使用xwininfo
-frame
命令可以完成查找上述参数。
重新调整视频尺寸大小
代码语言:javascript复制ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi
把摄像头的实时视频录制下来,存储为文件
代码语言:javascript复制ffmpeg -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf
注:ffmpeg的屏幕录制功能只能在Linux环境下有效。
版权属于:逍遥子大表哥
本文链接:https://cloud.tencent.com/developer/article/1921477
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。