ffmpeg命令1

ffmpeg命令参数:
主要参数 作用
-i 设置输入流
-f 设置输出格式
-ss 设置开始时间
-t 设置时间长度
音频参数 作用
-aframes 设置输出的音频帧数
-b:a 设置音频码率
-ar 设置采样率
-ac 设置声音的channel数
-acodec 设置声音编解码器,cpoy表示原始编解码数据必须被拷贝
-an 不处理音频
-af 音频过滤器

例子:

ffmpeg -i test.mp4 -b:a 192k -ar 48000 -ac 2 -acodec libmp3lame -aframes 200 out.mp3
视频参数 作用
-vframes 设置输出的视频帧数
-b 设置视频码率
-b:v 设置视频码率
-r 设置帧速率
-s 设置画面的宽与高
-vn 不处理音频
-aspect 设置横纵比4:3,16:9,1.3333:1.7777
-vcodec 设置视频编解码器,cpoy表示原始编解码数据必须被拷贝
-vf 视频过滤器

例子:

ffmpeg -i test.mp4 -vframes 300 -b:v 300k -r 30 -s 640x480 -aspect 16:9 -vcodec libx265
ffmpeg提取音视频数据:

保留封装格式:
ffmpeg -i test.mp4 -acodec copy -vn -audio.mp4
ffmpeg -i test.mp4 -vcodec copy -an video.mp4

提取视频:
保留编码格式:ffmepg -i test.mp4 -vcodec copy -an test_copy.h264
强制格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264

提取音频:
保留编码格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac
强制格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3

ffmpeg命令提取像素格式

提取YUV:
提取3秒数据,分辨率和原视频一致:
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv420p_orig.yuv
提取3秒数据,分辨率转为320x240
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv

提取RGB:
提取3秒数据,分辨率转为320x240
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb

RGB和YUV之间的转换:
ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x240.yuv -pix_fmt rgb24_320x240_2.rgb

提取PCM:
ffmpeg -i test.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm
ffmpeg -i test.mp3 -ar 48000 -ac 2 -sample_fmt s16 out_s16.wav
ffmpeg -i test.mp3 -ar 48000 -ac -codec:a pcm_s16le out2_s16le.wav
ffmpeg -i test.mp3 -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
ffmpeg -i test.mp4 -t 10 -vn -ar 48000 -ac 2 -f f32le 48000_2_f32le_2.pcm
后缀格式可不为pcm,目的是为了好识别

ffmpeg命令转封装

保持编码格式:
ffmpeg -i test.mp4 -vcodec copy -acode copy test_copy.ts
ffmpeg -i test.mp4 -codec copy test_copy2.ts
若没字幕流的话上述两条命令是相等的

改变编码格式:
ffmpeg -i test.mp4 -vcodec libx265 -acodec libmp3lame out_h265_mp3.mkv

修改帧率:
ffmpeg -i test.mp4 -r 15 output2.mp4

修改视频码率:
ffmpeg -i test.mp4 -b 400k output_b.mkv
ffmpeg -i test.mp4 -b:v 400k output_bv.mkv

修改音频码率:
ffmpeg -i test.mp4 -b:a 192k output_ba.mp4
如果不想重新编码video,需要加上-vcodec copy

修改音视频码率:
ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4

修改视频分辨率:
ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4

修改音频采样率:
ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4

ffmpeg拼接文件

以MP4格式进行拼接:
方法一:ffmpeg -i "concat:1.mp4|2.mp4|3.mp4" -codec copy out_mp4.mp4
方法二:ffmpeg -f concat -i mp4list.txt -codec copy out_mp42.mp4

以TS格式进行拼接:
方法1:ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out_ts.mp4
方法2:ffmpeg -f concat -i tslist.txt -codec copy out_ts2.mp4

以FLV格式进行拼接:
方法1:ffmpeg -i "concat:1.flv|2.flv|3.flv" -codec copy out_flv.mp4
方法2:ffmpeg -f concat -i flvlist.txt -codec copy out_flv2.mp4

方法1只适用于部分封装格式,比如TS
拼接建议:

  1. 使用方法2进行拼接
  2. 转成TS格式再进行拼接

不同编码拼接要点:

  1. 视频分辨率可以不同,但编码格式需统一
  2. 音频编码格式需统一,音频参数(采样率/声道等)也需统一
ffmpeg图片和视频转换

截取一张图片:
ffmpeg -i test.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 640x360 test.jpg
-vframes 帧 如果大于1 那么 输出加%03d test%03d.jpg, C语言格式

转换视频为图片(每帧一张图):
ffmpeg -i test.mp4 -t 5 -s 640x360 -r 15 frame%03d.jpg

图片转换为视频:
ffmpeg -f image2 -i frame%03d.jpg -r 25 video.mp4

从视频中生成GIF图片:
ffmpeg -i test.mp4 -t 5 -r 1 image1.gif
ffmpeg -i test.mp4 -t 5 -r 25 -s 640x360 image2.gif

将 GIF 转化为 视频:
ffmpeg -f gif -i image2.gif image2.mp4

ffmpeg视频录制

查看可用设备名字:
ffmpeg -list_devices true -f dshow -i dummy

录制视频(默认参数):
桌面:ffmpeg -f dshow -i video="screen-capture-recorder" v-out.mp4
摄像头: ffmpeg -f dshow -i video="Integrated Camera" -y v-out2.flv (要根据自己摄像头名称)

录制声音(默认参数):
系统声音:ffmpeg -f dshow -i audio="virtual-audio-capturer" a-out.aac
系统+麦克风声音:
ffmpeg -f dshow -i audio="麦克风阵列 (2- Realtek High Definition Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 a-out2.aac

同时录制声音和视频:
ffmpeg -f dshow -i audio="麦克风阵列 (2- Realtek High Definition Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f dshow -i video="screen-capture-recorder" -y av-out.flv

查看视频录制可选参数:
ffmpeg -f dshow -list_options true -i video="screen-capture-recorder"

查看音频录制可选参数:

  1. ffmpeg -f dshow -list_options true -i audio="virtual-audio-capturer“
  2. ffmpeg -f dshow -list_options true -i audio="麦克风阵列 (2- Realtek High Definition Audio)"
ffmpeg拉流

直播拉流:
ffplay rtmp://server/live/streamName
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
对于不是rtmp的协议 -c copy要谨慎使用,若没有用-c copy,ffmpeg会根据指定的文件后缀,自动生成相应的编码格式

ffmpeg推流

ffmpeg -re -i out.mp4 -c copy flv rtmp://server/live/streamName
-re,表示按时间戳读取文件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350