1、FFmpeg常用命令

1、安装ffmpeg

1.1、centos安装

git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg
su
yum install gcc gcc-c++ make nasm pkgconfig
yum install zlib-devel freetype-devel libjpeg-turbo-devel libpng-devel
./configure --enable-shared
make
make install

但是这样向bash输入ffmpeg时并不会出现预想的结果。会报错

ffmpeg: error while loading shared libraries: libavdevice.so.60: cannot open shared object file: No such file or directory

解决方法如下:

ldd ffmpeg #查看缺失的
find /usr -name 'libavdevice.so.60' #寻找路径
export LD_LIBRARY_PATH=/usr/local/lib/

不过 export 只是暂时的,可以这样让其永久保留:

vim ~/.bashrc
往里面添加上 export LD_LIBRARY_PATH=/usr/local/lib/
source ~/.bashrc

安装ffplay,一直试,,具体要怎么做我也不清楚了。。

sudo apt-get install libasound2-dev libpulse-dev
sudo apt-get install libsdl2-2.0
sudo apt-get install ffmpeg

1.2、windows安装

https://www.bilibili.com/video/BV1sk4y127xR

2、ffmpeg处理流程

file

3、命令分类

file

3.1、基本信息查询命令

file

终端输入即可,如:

ffmpeg -version

3.2、录制命令

我的系统是windows,演示下win里面的录制。

视频录制

ffmpeg -f gdigrab -framerate 30 -i desktop out.yuv

-f gdigrab:指定输入格式
-framerate 30:帧率30
-i desktop:指定输入源

在shell里面会输出这些:

Stream #0:0: Video: bmp, bgra, 4480x1600, 6881292 kb/s, 30 fps, 1000k tbr, 1000k tbn

使用 ffplay 将文件显示出来:

ffplay -video_size 4480x1600 -pixel_format bgra -framerate 30 -i out.yuv

音频录制
先看有哪些音频设备

ffmpeg -list_devices true -f dshow -i dummy

然后指定设备录制

ffmpeg -f dshow -i audio="External Mic (Realtek(R) Audio)" output.wav

wav是可以直接点击听的,也可以通过ffplay:

ffplay output.wav

3.3、分解与复用

file

将多媒体转换下格式

ffmpeg -i 01.mp4 -vcodec copy -acodec copy 01.mov

文件信息的一部分如下

Stream #0:0[0x1](und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv), 640x360 [SAR 1:1 DAR 16:9], 274 kb/s, 25 fps, 25 tbr, 90k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)
    Metadata:
      handler_name    : Libquicktime Sound Media Handler
      vendor_id       : [0][0][0][0]

抽取视频:

ffmpeg -i 2.mp4 -an -vcodec copy out.hevc

抽取音频:

ffmpeg -i 2.mp4 -acodec copy -vn out.aac

3.4、处理原始数据命令

提取YUV数据

ffmpeg -i 2.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
ffplay -video_size 640*360 out.yuv

提取PCM数据

ffmpeg -i 2.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
ffplay -ar 44100 -ac 2 -f s16le out.pcm

3.5、滤镜命令

file

裁剪视频(宽-=400 高-=200)、音频不变:

ffmpeg -i 2.mp4 -vf crop=in_w-400:in_h-200 -c:v libx264 -c:a copy out.mp4

3.6、音视频的裁剪与合并

从0开始裁剪10秒

ffmpeg -i 2.mp4 -ss 00:00:00 -t 10 out.ts

将两个视频合并

# 在 inputs.txt 写入以下内容
file out1.ts
file out2.ts

# 终端
ffmpeg -f concat -i inputs.txt out.flv

3.7、图片与视频互转

视频每秒10帧转成图片

ffmpeg -i out3.mp4 -r 10 -f image2 ./images/image-%3d.jpeg

将图片拼接成视频

ffmpeg -r 10 -i ./images/image-%3d.jpeg out6.mp4

3.8、直播相关

直播推流

ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName

直播拉流

ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

拉流示例

ffmpeg -i http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8 -c copy out.m3u8
# 然后本地就会生成很多ts
ffplay out.m3u8
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇