首页 > 其他 > 详细

音视频入门-4-使用ffmpeg命令快速体验音视频开发

时间:2021-01-09 23:07:21      阅读:47      评论:0      收藏:0      [点我收藏+]

 

1》我的实验所使用的视频文件告知读者

1.

 技术分享图片

这是我在ubuntu环境上实验使用的视频文件, 我在windows上查看了详细信息,然后拖进ubuntu内,重命名为video-test.mp4

 

2.

技术分享图片

这是我在windows环境上实验使用的视频文件

 

2》开始实验

<1>播放音频

-window_title LMW:窗口名起名为-window_title LMW:窗口名起名为LMW

-loop 2:循环播放两次

-autoexit:播放完毕后自动退出

ffplay -window_title myplayer -loop 2 -autoexit hello.wav  (windowsLinux实测适用)

 

 

<2>播放视频  

ffplay test.mp4  (windowsLinux实测适用)

结束播放后,可以看到相关的视频参数:

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 206 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc (default)

这显示该视频详细信息为h264编码,格式为yuv420p, 分辨率为1280x720, 码流为206kb/s等。

 

 

<3>以固定窗口大小播放视频  -autoexit:播放完毕后自动退出

ffplay -x 640 -y 480 -autoexit test.mp4  (windowsLinux实测适用)

 

-window_title LMW:窗口名起名为LMW

ffplay -window_title LMW -x 640 -y 480 -autoexit  test.mp4 (windowsLinux实测适用)

 

 

<4>视频转码  -an: audio not 不需要音频,剔除音频

ffmpeg -i test.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv (windowsLinux实测适用)

下面截图来自ubuntu上的实验

技术分享图片

 

 

 

PS: 文件大小比对

技术分享图片

原视频13.8MB

 

技术分享图片

out.yuv达到了惊人的近500MB,而且不含音频信息。

所以说,音视频文件需要编码啊,降低文件大小同时又保持高画质,很必要。

 

<5>播放yuv420p格式的视频:out.yuv, 此时需要指定其正确的视频分辨率,否则不能正常显示该视频

ffplay -pix_fmt yuv420p -s 1280x720 out.yuv (windows实测有效)

 

ffplay -pix_fmt yuv420p -s 1080x1920 out.yuv (Linux实测有效,注意,这里1080在前面,1920在后面)  

或者

ffplay -pix_fmt yuv420p -s 1080x1920  -x 640 -y 320 -window_title LMW -autoexit out.yuv

(Linux实测有效,注意,这里1080在前面,1920在后面)

技术分享图片

 

 

 

 

<6>只提取y分量并播放该视频,视频变成了黑白电视的效果

-vf: 简单滤波器

ffplay -s 1280x720 -vf extractplanes=‘y‘ out.yuv

技术分享图片

 

 

<7>只提取u分量并播放该视频

ffplay -s 1280x720 -vf extractplanes=‘u‘ out.yuv

技术分享图片

 

 

 

 

<8>只提取v分量并播放该视频

ffplay -s 1280x720 -vf extractplanes=‘v‘ out.yuv

技术分享图片

 

 

 

 

<9>

录制音频:

mac:

ffmpeg -f avfoundation -i:0 out.wav

 

 

windows:

chcp 65001    

敲入该命令,使得windowscmd命令提示符窗口可以正确显示出中文 UTF-8

 

ffmpeg -list_devices true -f dshow -i dummy

执行该指令,然后查看 DirectShow video devices ,会列出音频设备和视频设备的名字

 

ffmpeg -f dshow -i audio="麦克风阵列 (Realtek Audio)" -acodec libmp3lame test.mp3

录制音频,按下ctrl+c可以结束录制音频

 

ffmpeg -f dshow -i video="HD User Facing" -t 10 -vcodec libx264 test.mp4  

        录制10秒钟的视频,采用H264编码,保存为文件。 video=XXXX是上面ffmpeg -list_devices查看到的视频设备的名字

 

    参考【window系统 实现FFmpeg 录制音视频-CSDN博客】

https://blog.csdn.net/david_jiahuan/article/details/103634013

 

Linux

方式1

arecord -D plughw:0,0 -f S16_LE -c 2 -r 22050 out.wav  

这个没使用ffmpeg,使用了alsaarecord ALSA声卡驱动程序的命令行声音文件记录器

 

方式2

ffmpeg -f alsa -ac 2 -i hw:0,0 out.avi 

ffplay out.avi

使用ffmpeg方式录制音频,不过我使用笔记本录制,音量很小。

 

<10>

录制屏幕

Linux

方式1 实测有画面没声音

ffmpeg -f x11grab -r 30 -i :0.0 -f alsa -i hw:0,0 -acodec flac -vcodec ffvhuff out.mkv  // 采用mkv格式

ffplay out.mkv

 

方式2 实测有画面没声音

ffmpeg -s 800x600 -r 25 -f x11grab -i :0.0 -f alsa -ac 2 -ar 44100 -i pulse -qscale 0.01 output.flv

ffplay output.flv

 

方式3 实测有画面没声音 而且分辨率设置太大,画面会不清晰

ffmpeg -s 1688x966 -r 25 -f x11grab -i :0.0 -f alsa -ac 2 -ar 44100 -i pulse -t 60 test.mp4

 

方式4 实测有画面有声音,但是播放时音视频不同步

ffmpeg -f alsa -i default -f v4l2 -s 1024x768 -i /dev/video0 -acodec flac -vcodec ffvhuff out.mkv

ffplay -window_title LMW_Family -autoexit out.mkv

 

方式5 音视频都有,且播放同步

待探索

 

 

ubuntu 64位 环境下编译:

1 官网下载源文件压缩包,解压,进入到解压后的文件夹ffmpeg

技术分享图片

 

2

 ./configure --disable-x86asm

 

3

 make

 

4

 make install

 

 

.

音视频入门-4-使用ffmpeg命令快速体验音视频开发

原文:https://www.cnblogs.com/happybirthdaytoyou/p/14256260.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!