前言

FFmpeg使用教程

安装

本文主要讲解在Linux下的使用,因此在Linux中安装执行下面命令即可。

apt-get install ffmpeg

常用示例

直接将MP4文件转成m3u8:

ffmpeg -i bbskali.mp4 -hls_time 10 -hls_list_size 0 -hls_segment_filename ene_%05d.ts bbskali.m3u8

如果已经是ts文件了,则只需要执行下方命令即可:

ffmpeg -i bbskali.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts

将大量分割成ts文件的视频片段全部转换成mp4视频片段 --- 直接上批处理脚本:

for %%a in ("D:\VideoProjects\NewDemo\*.ts") do ffmpeg -i "%%a"   -vcodec copy -vcodec copy -f mp4 "D:\VideoProjects\NewDemo\NewMP4\%%~na.mp4"
pause

上面的 ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 test.mp4 是将ts文件转换为mp4文件的意思,再在其之上套了一层for循环,%%a就是每个文件,转换命令最末尾的%%~na是将文件保持原来的文件名的情况下进行输出,存放到指定文件夹的意思。
mp4视频转flv

ffmpeg -i bbskali.mp4 -acodec copy -vcodec copy -f flv bbskali.flv 

将本地指定的demo.ts文件进行推流:

ffmpeg -re  -i demo.ts  -c copy -f mpegts   udp://127.0.0.1:1997

强制把输出视频文件帧率改为 24 fps:

ffmpeg -i bbskali.avi -r 24 output.avi

对视频每个一秒截一个图并存在本地:

ffmpeg -i bbskali.mp4 -f image2 -vf fps=fps=1 out%d.png

每隔20秒截一个图:

ffmpeg -i bbskali.mp4 -f image2 -vf fps=fps=1/20 out%d.png

将视频转换为图片,一帧一图:

ffmpeg -i bbskali.mp4 out%4d.png

提取视频文件中的音频数据,并保存为文件

ffmpeg -i bbskali.mp4 -vn -acodec copy output.m4a

给视频添加水印

ffmpeg -i pm.mp4 -i xxx.png -filter_complex "overlay=5:5"  out.mp4

把视频的前30帧转换成一个Animated Gif

ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

截取指定时间的缩微图

ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg

将一段音频与一段视频混合

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

使用ffmpeg录像屏幕

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命令可以完成查找上述参数。
重新调整视频尺寸大小

ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi

把摄像头的实时视频录制下来,存储为文件

ffmpeg -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf

注:ffmpeg的屏幕录制功能只能在Linux环境下有效。

最后修改:2023 年 08 月 04 日
如果觉得我的文章对你有用,请随意赞赏