FFmpeg 编程之命令行使用

本文详述了DOS的基本命令,如文件夹操作、文件管理等,并深入介绍了FFmpeg的强大功能,包括视频转码、播放、图片与视频互转、视频分割等,为音视频处理提供全面指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

• 基本的DOS命令
 1.最关键命令
    打开指定文件夹命令 cd {文件路径}
    切换到上一级文件夹 cd ..
    切换到当前目录下名为xxx的文件夹 cd xxx
    改变当前盘符命令 c:
2.其他命令
    查看目录内容命令 dir
    创建目录命令 md
    文件复制命令 copy
    删除文件命令 del
    清除屏幕命令 cls
• Windows系统提供的额外命令
 例如ping, ipconfig等等

ffmpeg.exe命令格式
 功能:用于视频的转码。
1.最简单的命令
ffmpeg -i input.avi -b:v 640k output.ts
该命令将当前文件夹下的input.avi文件转换为output.ts文件,并将output.ts文件视频的码率设置为640kbps。
2.命令格式
ffmpeg -i {输入文件路径} -b:v {输出视频码率} {输出文件路径}
所有的参数都是以键值对的形式指定的。例如输入文件参数是“-i”,而参数值是文件路径;输出视频码率参数是“-b:v”,而参数值是视频的码率值。但是注意位于最后面的输出文件路径前面不包含参数名称。

常用命令参数

ffplay.exe命令格式
 功能:ffplay.exe用于视频的播放。
1. 最简单的命令
ffplay input.avi
该命令将播放当前文件夹下的input.avi文件。
2. 命令格式
ffplay {输入文件路径}
ffplay.exe的参数格式和ffmpeg.exe是类似的。所有的参数都是以键值对的形式指定的(由于不包含输出文件,所以只能指定输入参数)。注意位于最后面的输入文件路径前面不包含参数名称。

ffmpeg 图片转视频命令 互转

图片转视频:

ffmpeg -f image2 -i /home/test/images/image%d.jpg  -vcodec libx264  test.h264
ffmpeg -f image2 -i /home/test/images/image%d.jpg  -vcodec libx264  -r 20 test.h264
ffmpeg -r 1 -i %d.jpg -vf fps=1 -vcodec libx264 test.h264

其中/home/ttwang/images/images%d.jpg 为图片路径
图片的命名格式为image%d.jpg形式,即:image0 image1 image2 .......
-vcodec 指定视频编码格式
-r 10 表示定义帧率为10,这样输出的视频就是每秒播放十帧
tt.mp4为输出视频文件名

视频转图片 :

ffmpeg -r 10 -i futi_246.mp4 -f image2 images/%07d.jpg

ffmpeg把多个视频合成一个视频

FFmpeg concat 分离器
注意 : FFmpeg 1.1 以上版本。先创建一个文本文件filelist.txt:

file 'input1.mkv'
file 'input2.mkv'
file 'input3.mkv'

然后:

ffmpeg -f concat -i filelist.txt -c copy output.mkv

ffmpeg从视频中获取图像帧

  • ./ffmpeg.exe -i test.mp4 -r 1 image-%5d.jpeg
    -r,指定抽取视频的帧率,即从视频中每秒抽取的帧数,默认是每秒24帧。
    image-%5d.jpeg,指定输出文件的名字。

  • ./ffmpeg.exe -i test.mp4i -r 1 -t 4 image-%05d.jpeg
    -t,表示取t秒时间的帧

  • ./ffmpeg.exe -i test.mp4 -r 1 -ss 00:00:40 image-%5d.jpeg
    -ss,表示截取帧初始时间

  • ./ffmpeg.exe -i test.mp4 -r 1 -ss 00:00:40 -vframes 10 image-%5d.jpeg
    -vframes,表示截取多少帧

  • ffmpeg -i test.mp4 -r 1 -t 5 -vframes 1 -pix_fmt yuv420p10le out.yuv
    从视频截取一帧图像保持为yuv10bit little-endian数据

  • ffmpeg -i test.mp4 -r 1 -t 5 -vframes 1 -pix_fmt rgb48be out.png
    从视频截取一帧图像保持为yuv10bit big-endian数据

ffmpeg 图像转HDR视频

      参考:HDR视频的编码参数与元数据解析

  1. ffmpeg 解码获取一帧YUV420 10bit数字图像,量化范围为int型(0~1023)

  2. YUV420 10bit数字图像转换为模拟图像(浮点型),其中Y(0~1.0),UV(-0.5~0.5)

  3. 模拟YUV图像转换为模拟RGB图像,并量化保存为int型16bit(0~65535)RGB数字图像

  4. 复制多张RGB数字图像命名为"image_**.tif",使用ffmpeg将图像转为视频:ffmpeg -f image2 -i image_%2d.tif -pix_fmt yuv420p10le -vcodec libx265 tt.mp4

  5. 添加静态元数据转为HDR视频:ffmpeg -i tt.mp -r 25 -crf 1 -c:v libx265 -x265-params "colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:master-display=""G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)"":max-cll=""1000,400"":min-luma=0 .001:max-luma=1000 HDR.mp4

本文参考雷霄骅PDF

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值