我是靠谱客的博主 忐忑月饼,最近开发中收集的这篇文章主要介绍FFMPEG操作指南FFMPEG操作指南,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

FFMPEG操作指南

文章目录

  • FFMPEG操作指南
    • ffmpeg基本命令
      • 1.分离视频音频流
      • 2.视频解复用
      • 3.视频转码
      • 4.视频封装
      • 5.视频剪切
      • 6.视频录制
      • 7.YUV序列播放
      • 8.YUV序列转AVI
      • 9.截取视频的第一帧保存为JPG图片
      • 10.获取视频时长
      • 11.图片转视频
      • 12.视频转gif
      • 13.视频合并
      • 14.mp4转换为m3u8
      • 15.加音轨
      • 16.加字幕
      • 17.加水印/片头
      • 18.图片转视频:淡入淡出特效
      • 19.图片转视频:变焦特效
      • 20.图片转视频:水平翻转特效
      • 21.图片转视频:旋转特效
      • 22.视频格式转换
    • ffmpeg参数说明
    • 参考资料

ffmpeg基本命令

1.分离视频音频流

ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流
ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流

2.视频解复用

ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

3.视频转码

ffmpeg –i test.mp4 –vcodec h264 –s 352278 –an –f m4v test.264 //转码为码流原始文件
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352
278 –an –f m4v test.264 //转码为码流原始文件
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //转码为封装文件

4.视频封装

ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

5.视频剪切

ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg //提取图片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪切视频

6.视频录制

ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

7.YUV序列播放

ffplay -f rawvideo -video_size 1920x1080 input.yuv

8.YUV序列转AVI

ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

9.截取视频的第一帧保存为JPG图片

格式:ffmpeg -i 视频文件名 -y -f image2 -ss 00:00:01 -vframes 1 图片名.jpg

ffmpeg -i lesson001.mp4 -y -f
image2
-ss 00:00:01 -vframes 1 firstFrame.jpg
ffmpeg -i lesson002.mpg -y -f
image2
-ss 00:00:01 -vframes 1 firstFrame.jpg
ffmpeg -i 1.mp4 -y -f
image2
-ss 00:00:01 -vframes 25 firstFrame%d.jpg

10.获取视频时长

格式:ffmpeg -i 视频文件名 2>&1 | grep ‘Duration’ | cut -d ’ ’ -f 4 | sed s/,//

ffmpeg -i lesson003.mpg 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//

11.图片转视频

图片像素必须为偶数,大小最好与原视频完全相同

ffmpeg -y -f image2 -i capture%3d.jpg -r 23.98 img.mp4

12.视频转gif

1.使用ffmpeg自带的转换功能

ffmpeg -y -ss 25 -t 10 -i D:video_testgif1.mp4 -s 134x154 -f gif -r 4 D:video_testgif1_test.gif

2.先截取图片,再合并成gif

1.ffmpeg -ss 25 -t 10 -i D:video_testgif1.mp4 -r 10 -s 320x240 -f image2 D:video_testgiftmp1-%03d.jpg
2.ffmpeg -f image2 -framerate 46 -i D:video_testgiftmp-%03d.jpg D:video_testgif6_test.gif

此时需要注意图片必须是连续的序列号,需要放在一个文件夹内方便统计

13.视频合并

1.直接合并,不管损耗

ffmpeg -i "concat:D:/video_test/gif/output1.mp4|D:/video_test/gif/output2.mp4" -c copy D:/video_test/gif/output.mp4

2.低损耗合并

切片:ffmpeg -y -ss 00:00:01.000 -t 00:00:20.000 -i 1.mp4 -vcodec copy -acodec copy 1.mp4
转ts:ffmpeg -y -ss -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ts片合成:ffmpeg -y -i concat:"1.ts|2.ts" -vcodec copy -acodec copy -absf aac_adtstoasc -f mp4 merge.mp4

14.mp4转换为m3u8

ffmpeg -i D:/video_test/test_1.mp4 -c:v libx264 -c:a aac -strict -2 -f hls D:/video_test/ts/output.m3u8
ffmpeg -i D:/video_test/3.mp4 -c:v libx264 -c:a aac -hls_time 10 -hls_list_size 0 -strict -2 -f hls D:/video_test/ts/output.m3u8

其中可加参数:
hls_time:默认单位为s,默认2s
hls_list_size: 生成的m3u8的list长度,默认为5,设置为0则会显示全部ts片

15.加音轨

1.混音

ffmpeg -y -i mark.mp4 -i test.aac -filter_complex "amix=inputs=2:duration=first:dropout_transition=2" -strict -2 -f mp4 av.mp4

2.加音轨(输出格式不能为mp3)

ffmpeg -i 1.mp4 -i 2.mp3 -map 0:a:0 -map 1:a:0 -map 0:v 6.mp4/mkv

16.加字幕

ffmpeg -i 3.mp4 -vf ass=2.ass -strict -2 out.mp4
ffmpeg -y -i 3.mp4 -vf subtitles=2.srt:force_style='FontName=宋体' -strict -2 output-srt.mp4

17.加水印/片头

ffmpeg -y -i 3.mp4 -i 111.mp4 -filter_complex "[1:v]colorkey=0x000000:0.6:1.0[ckout];[0:v][ckout]overlay=main_w-overlay_w-20:y=main_h-overlay_h-20[out]" -map "[out]" -movflags faststart 311.mp4

18.图片转视频:淡入淡出特效

ffmpeg -y -f image2 -i D:/video_test/images/Chrysanthemum_H43_sc%4d.jpg -r 24 -vf "fade=in:0:8,fade=out:16:24" -s 1280*720 D:/video_test/images/Chrysanthemum_H43_sc_0.mp4

19.图片转视频:变焦特效

ffmpeg -i D:/video_test/images/Chrysanthemum_H43_sc0000.jpg -vf "zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125" -c:v libx264 -t 1 -s "1280*720" D:/video_test/images/Chrysanthemum_H43_sc_1.mp4

20.图片转视频:水平翻转特效

ffmpeg -y -f image2 -i D:/video_test/images/Chrysanthemum_H43_sc%4d.jpg -r 24 -vf hflip -s 1280*720 D:/video_test/images/Chrysanthemum_H43_sc_0.mp4

21.图片转视频:旋转特效

1.全屏幕填充旋转

ffmpeg -y -f image2 -i D:/video_test/images/Chrysanthemum_H43_sc%4d.jpg -r 24 -vf "transpose=0" -s 1280*720 D:/video_test/images/Chrysanthemum_H43_sc_0.mp4

其中,transpose取值:
0 = 90CounterCLockwise and Vertical Flip (default) 逆时针旋转90度且垂直翻转
1 = 90Clockwise 顺时针旋转90度
2 = 90CounterClockwise 逆时针旋转90度
3 = 90Clockwise and Vertical Flip 顺时针旋转90度且垂直翻转
参数可以写成 “transpose=2,transpose=2”:过滤条件

2.任意角度翻转,但是不保证全屏

ffmpeg -y -f image2 -i D:/video_test/images/Chrysanthemum_H43_sc%4d.jpg -r 24 -vf "rotate=PI/2" -s 1280*720 D:/video_test/images/Chrysanthemum_H43_sc_0.mp4

通过修改rotate参数来改变角度

22.视频格式转换

测试格式:avi,wmv,rmvb --> mp4(转成MP4)

FFMPEG
-i
check.rmvb -c:v libx264 -strict -2 check.mp4

ffmpeg参数说明

  • ab :设定声音比特率
  • ac :设置音频通道数
  • acodec :设定声音编解码器,未设定时则使用与输入流相同的编解码器
  • af : 等价于 -filter:a 音频过滤器,单通道输入输出
  • an :去掉音频
  • ar :设置音频采样频率
  • aspect :设定画面的比例
  • b :设定视频流量,默认为200Kbit/s
  • bf :B帧数目控制
  • c[:stream_specifier]或-codec[:stream_specifier] : 选择一个编解码器或者是一个指示不能再进行编码的输出流复制
  • f :设定输出格式(强制输出文件格式)
  • filter_complex : 复合滤镜,支持多通道输入和多通道输出
  • frames : 在输出了frames设置的帧数后停止输出内容到流
  • g :关键帧间隔控制
  • i :设定输入流
  • r :设定帧速率,默认为25
  • s :设定画面的宽与高
  • ss:开始时间
  • stream_loop number :设置输入流的循环次数(0为无循环,-1为无穷循环)
  • t :持续时间
  • vcodec :设定视频编解码器,未设定时则使用与输入流相同的编解码器
  • vf : 等价于 -filter:v 视频过滤器图,单通道输入输出
  • vframes : 等价于 -frames:v 设置输出帧数
  • vn :去掉视频
  • vol :设定音量(百分比)
  • y :强制覆盖输出文件(如果存在的话)

参考资料

ffmpeg官方文档:http://ffmpeg.org/ffmpeg-all.html#fade
常用命令:http://www.cnblogs.com/dwdxdy/p/3240167.html
常用功能:http://blog.csdn.net/iw1210/article/details/68937154
转换m3u8:http://blog.csdn.net/jookers/article/details/21694957
音频拼接:http://blog.csdn.net/u012416398/article/details/48546593
音视频合成分割:http://blog.csdn.net/sophie_wise8/article/details/22732397
无损合成:http://blog.csdn.net/doublefi123/article/details/47276739
基本操作:http://www.cnblogs.com/wainiwann/p/4031129.html
半透明水印:http://blog.chinaunix.net/uid-23621064-id-5616218.html
ffmpeg参数解释:http://blog.sina.com.cn/s/blog_40ce02d70100rrny.html
滤镜及其效果:http://blog.csdn.net/dangxw_/article/details/49001413
水平翻转视频,对称显示播放:http://blog.csdn.net/u013699869/article/details/48025803
旋转:http://blog.csdn.net/u012700515/article/details/17912857
视频转gif:http://blog.csdn.net/happydeer/article/details/45727227
ffmpeg开发指南:http://blog.csdn.net/zd394071264/article/details/8166364
一些特效:http://blog.csdn.net/dancing_night/article/details/46776903
图片转视频:http://blog.sina.com.cn/s/blog_40d73279010113c2.html
linux下ffmpeg安装:http://www.cnblogs.com/wanghetao/p/3386311.html

最后

以上就是忐忑月饼为你收集整理的FFMPEG操作指南FFMPEG操作指南的全部内容,希望文章能够帮你解决FFMPEG操作指南FFMPEG操作指南所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部