ffmpeg的常用指令【命令行】

483 阅读2分钟

本文已参与「新人创作礼」活动.一起开启掘金创作之路。

ffmpeg是个很强大的工具,可以推流,可以剪辑,也可以录屏。接下来就介绍一下,ffmpeg常用的指令

将qsv格式的视频变为mp4

  • ffmpeg -i baow.qsv -vcodec copy -an w.mp4 将mp4去除音源,变成无声音的mp4
  • ffmpeg -i ./cat.mp4 -c:v copy -an ./n.mp4 将mp3与mp4合并到一个mp4,前提是合并的mp4没有音源
  • ffmpeg -i ./bb.mp3 -i ./n.mp4 out.mp4 在6.3秒处往后截取3分2.6秒的MP3
  • ffmpeg -i 1.mp3 -ss 00:00:06.3 -t 00:03:02.6 -acodec copy bb.mp3 查看视频的时间总长
  • ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -i _9.mp4 查看视频的总帧数
  • ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 _9.mp4 设置视频的音量为130%
  • ffmpeg -i 4.mp4 -filter:a "volume=1.3" -vcodec copy _4.mp4 设置视频的音量降低2分贝
  • ffmpeg -i _11.mp4 -filter:a "volume=-2dB" -vcodec copy __11.mp4 提取视频中的mp3
  • ffmpeg -i ").mp4" -q:a 0 -map a 2.mp3 连接ts格式的视频文件,合并到一个mp4中
  • ffmpeg -i "concat:1.ts|2.ts|3.ts|4.ts|5.ts|6.ts|7.ts|8.ts|9.ts" -c copy 33.mp4

将mp4转为ts文件

  • ffmpeg -i _0.mp4 -reset_timestamps 1 -c copy -bsf:v h264_mp4toannexb -f mpegts 0.ts 将ts格式视频文件转为MP4
  • ffmpeg -i input.ts -c copy -map 0:v -map 0:a output.mp4 按照帧来截取,如:从第15帧到第64帧
  • ffmpeg -i ./_9.mp4 -vf "select=between(n,15,64)" -acodec copy ./_5.mp4

更改视频的大小分辨率,通常用来压缩视频,但是分辨率要是通用型分辨率,并且只能是越来越模糊(小于原视频的分辨率)

  • ffmpeg -i 3.mp4 -strict -2 -vf scale=1280:720 4.mp4

截取ts格式视频,从第4秒往后截取8秒

  • ffmpeg -ss 00:00:04 -t 00:00:08 -i 1.ts -vcodec copy -acodec copy 0.ts 截取视频,从第0秒到第2.40秒
  • ffmpeg -ss 00:00:00.00 -to 00:00:02.40 -i _8.mp4 -vcodec copy -acodec copy 8.mp4

ffmpeg进行推流,直接推送当前电脑屏幕,下面是我使用的方式

  • ffmpeg -f gdigrab -i desktop -f dshow -i audio="麦克风 (2- Realtek High Definition Audio)" -pix_fmt yuv420p -vcodec libx264 -crf 22 -s 960x540 -r 7 -b 128k -acodec aac -ac 1 -ar 32000 -ab 12000 -vol 45 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://localhost:1935/live/admin

那么以上内容大概就是ffmpeg的一些常用指令了