FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等

您所在的位置:网站首页 ffmpeg录制音频 FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等

#FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等| 来源: 网络整理| 查看: 265

3.1 ffmpeg命令介绍

Ffmpeg源码编译完成之后,会生成一个ffmpeg可执行文件。

ffmpeg是一个非常快速的视频和音频转换器,也可以从实时音频/视频源中获取。它还可以在任意采样率之间转换,并使用高质量的多相滤波器即时调整视频大小。

在实际开发中,ffmpeg除了使用它的API接口进行编程,有些简单功能可以直接使用ffmpeg命令实现,可以节省很多写代码的时间。

 

3.2  使用ffmpeg命令推流视频文件到B站

先到B站注册账号,开通直播间,在右上角头像--个人中心进入直播间。

网站: https://www.bilibili.com/

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java_02

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java_03

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java_04

命令行执行命令:

  [root@wbyq ffmpeg-3.0.2]# ./ffmpeg -re -i "/mnt/hgfs/linux-share-dir/123.mp4" -c copy -vcodec libx264 -acodec aac-f flv ""

 

参数解析:

-vcodec libx264 指定视频编码格式

-acodec aac 指定音频编码格式

推流给B站的视频,一定要指定视频编码为x264,音频aac否则可能导致传递过去的视频无法播放,或者无法推流。

这里的rtmp地址和直播码,需要替换成自己B站的地址。

-i 参数是指定视频源文件。

推流成功之后,在自己的直播间可以看到推流的视频。

自己的直播间地址,在B站个人中心—我的直播间选项里可以看到。

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java_05

3.3 视频和音频单独抓取

如果指定输入格式和设备,则ffmpeg可以直接捕获视频和音频。

Linux下捕获摄像头的数据保存成视频文件:

  # ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 test.mp4

参数介绍:

 

-s 指定摄像头输出的图像尺寸

-i 摄像头的设备节点

test.mp4 是保存的视频文件名称

-f video4linux2是指定框架

Linux下捕获声卡的数据保存成音频文件:

 

(1)# ffmpeg -f alsa -ac 2 -ar 44100 -i default out.wav参数介绍:-i 指定声卡设备名称。这里default表示选择默认声卡。out.wav 捕获的音频数据保存的文件名称-f 是指定音频驱动类型。alsa是linux下音频驱动框架。oss是另外一种音频框架。-ar 设置音频采样率,以HZ为单位-ac 设置音频通道数(单声道、双声道)(2)# ffmpeg -f alsa -ac 1 -ar 44100 -i default -t 30 out.wav参数介绍:-t 30 表示录制30秒就自动停止(3)# ffmpeg -f alsa -ac 1 -ar 16000 -i hw:0 -t 10 out.wav参数介绍: 这里的hw:0 也表示选择默认的声卡设备录音。

列出当前主机上的声卡设备:

 

[root@wbyq linux-share-dir]# arecord -l (列出声卡设备数量)**** List of CAPTURE Hardware Devices ****card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC] Subdevices: 1/1 Subdevice #0: subdevice #0card 1: U0x46d0x825 [USB Device 0x46d:0x825], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0[root@wbyq linux-share-dir]# arecord -L (列出声卡设备详细信息)default Defaultfront:CARD=AudioPCI,DEV=0 Ensoniq AudioPCI, ES1371 DAC2/ADC Front speakerssurround40:CARD=AudioPCI,DEV=0 Ensoniq AudioPCI, ES1371 DAC2/ADC 4.0 Surround output to Front and Rear speakersiec958:CARD=AudioPCI,DEV=0 Ensoniq AudioPCI, ES1371 DAC2/ADC IEC958 (S/PDIF) Digital Audio Outputfront:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Front speakerssurround40:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.0 Surround output to Front and Rear speakerssurround41:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakerssurround50:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.0 Surround output to Front, Center and Rear speakerssurround51:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakerssurround71:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakersiec958:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio IEC958 (S/PDIF) Digital Audio Output

使用arecord -L命令列出了声卡名字之后,就可以选择指定声卡录制声音,其中front:xxx 就是声卡的名字。

选择指定的声卡录制声音示例:

 

(1). 选择USB摄像头的音频设备录音# ffmpeg -f alsa -ac 1 -ar 44100 -i front:CARD=U0x46d0x825,DEV=0 -t 10 out.wav(2). 选择电脑自带的声卡录音# ffmpeg -f alsa -ac 1 -ar 44100 -i front:CARD=AudioPCI,DEV=0 -t 10 out.wav

FFMPEG录制音频的其他参数:

 

  # ffmpeg --help音频选项:-aframes number 设置要输出的音频帧数-aq quality 设置音频质量(特定于编解码器)-ar rate 设置音频采样率(以Hz为单位)-ac channel 设置音频通道数-an 禁用音频-acodec codec 强制音频编解码器复制到流-vol volume 更改音频音量(256=正常)-af filter_graph 设置音频过滤器 3.4 录制带声音的视频

命令示例:

 

#ffmpeg -f alsa -ac 1 -ar 44100 -i front:CARD=U0x46d0x825,DEV=0 -f video4linux2 -i /dev/video0 out.mpg#ffmpeg -f alsa -ac 1 -ar 16000 -i front:CARD=U0x46d0x825,DEV=0 -f video4linux2 -i /dev/video0 out.mp4

录制MP4格式的视频时,音频采样率设置16000效果比较好一些。

采用MP4格式录制视频的详细信息(视频H264、音频AAC):

 

Output #0, mp4, to 'out.mp4': Metadata: encoder : Lavf57.25.100 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv422p, 640x480, q=-1--1, 30 fps, 15360 tbn, 30 tbc Metadata: encoder : Lavc57.24.102 libx264 Side data: unknown side data type 10 (24 bytes) Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 16000 Hz, mono, fltp, 69 kb/s Metadata: encoder : Lavc57.24.102 aacStream mapping: Stream #1:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Stream #0:0 -> #0:1 (pcm_s16le (native) -> aac (native))

采用MPG格式录制视频的详细信息(视频mpeg1video、音频mp2):

 

Output #0, mpeg, to 'out.mpg': Metadata: encoder : Lavf57.25.100 Stream #0:0: Video: mpeg1video, yuv420p, 640x480, q=2-31, 200 kb/s, 30 fps, 90k tbn, 30 tbc Metadata: encoder : Lavc57.24.102 mpeg1video Side data: unknown side data type 10 (24 bytes) Stream #0:1: Audio: mp2, 48000 Hz, mono, s16, 384 kb/s Metadata: encoder : Lavc57.24.102 mp2Stream mapping: Stream #1:0 -> #0:0 (rawvideo (native) -> mpeg1video (native))  Stream #0:0 -> #0:1 (pcm_s16le (native) -> mp2 (native)

 

3.5 推流本地摄像头视频音频到流媒体服务器(4.2.2)

推流本地实时音频视频到流媒体服务器

示例:

  [wbyq@wbyq linux_c]$ ffmpeg -f video4linux2 -r 12 -s 640x480 -i /dev/video0 -f alsa -i default -ar 44100 -ac 1 -f mp3 -qscale 10 -f flv "rtmp://47.92.114.13:8086/live/123"

 

参数解析:

-f video4linux2 指定linux下的视频驱动框架

-s 640x480  指定视频尺寸

-i /dev/video0摄像头节点

f alsa 声卡驱动框架

-i default  选择声卡,这里选择默认声卡

-ar 44100  声音采样频率

-ac 1   单声道

-f mp3  MP3音频

-qscale 10 设置画面质量,值越小画面质量越高

f flv   指定封装格式

"rtmp://47.92.114.13:8086/live/123" 流媒体服务器地址

 

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java_06

Mplayer命令拉流显示流媒体视频示例:

  mplayer -framedrop rtmp://47.92.114.13:8086/live/123

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java_07

3.6 推流实时音频视频数据到B站

示例代码:

  [wbyq@wbyq linux-share-dir]$ ffmpeg -thread_queue_size 128 -f video4linux2 -r 12 -s 1280x720 -i /dev/video0 -f alsa -i default -ar 44100 -ac 1 -f mp3 -qscale 5 -vcodec libx264 -acodec aac -f flv "rtmp://js.live-send.acg.tv/live-js/?streamname=live_68130189_71037877&key=b95d4cfda0c196518f104839fe5e7573"

 

参数解析:

vcodec libx264  指定视频编码为x264格式

-acodec aac     指定音频编码为aac

注意:推流到B站的实时视频,一定要指定视频编码为X264,音频为aac,否则推流过去可能会显示不出来。

FFMPEG常用的一些命令介绍:音频录制、视频录制、视频推流等_java_08



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3