ffplay对多媒体的支持能力验证

一、视频3gp 177X144 支持播放,在windows下播放正常,但是在linux下面偶有BUG 如果发现画面无法显示而声音可以播放的情况下可以试着切换全屏或者切换分辨率。

AVI 208X176 支持 320X240 支持 720X400 支持 720X576 支持

DAT 352X288 支持

DiVX 720X576 支持

MKV 320X240 支持352X288 支持 704X304 支持 720X576 支持

MP4 320X240 支持 352X288 支持 720X400 支持

MPG 320X240 支持 352X288 支持 480X576 支持 720X576 支持 720X480 支持

VOB 352X288 支持

XVID 720X576 支持

MOV 支持

RMVB 支持

二、音频

AC3 48KHZ 支持

APE 11KHZ 支持 22KHZ 支持 44KHZ 支持 48KHZ 支持

MP3 32KHZ 64Kbps 支持 32KHZ 128KbpS 支持 32KHZ 160Kbps 支持 32KHZ 192Kbps 支持 32KHZ 320Kbps 支持 44KHZ 64Kbps 支持 44KHZ 128Kbps 支持 44KHZ 160Kbps 支持 44KHZ 192Kbps 支持 44KHZ 320Kbps 支持 48KHZ 64Kbps 支持 48KHZ 128Kbps 支持 48KHZ 160Kbps 支持 48KHZ 192Kbps 支持 48KHZ 320Kbps 支持

OGG 32KHZ 128Kbps 支持 32KHZ 192Kbps 支持 44KHZ 64Kbps 支持44KHZ 128Kbps 支持 44KHZ 192Kbps 支持 48KHZ 64Kbps 支持 44KHZ 128Kbps 支持 44KHZ 192Kbps 支持

WAV 11KHZ 支持 22KHZ 16Kbps 支持 44KHZ 16Kbps 支持 48KHZ 16Kbps 支持

WMA 8KHZ 16Kbps 支持 11KHZ 16Kbps 支持 16KHZ 16Kbps 支持 22KHZ 16Kbps 支持 44KHZ 16Kbps 支持 48KHZ 16Kbps 支持

三、图像

PNG 支持

JPG 支持

JPEG 支持

GIF 支持

BMP 支持

2 FFmpeg格式转换

第一步:准备媒体前面已经讲的很清楚了,ffmpeg如何安装不在赘述。准备好相应的文件,如图2-1所示。

第二步:启动ffmpeg 由于做的是格式转换,在ffserver上不能直观的看见结果,故我是在linux下进行的。打开终端,值得一提的是格式转换需要超级用户才能进行,故在 命令行输入:su,<回车>,输入密码进入超级用户,本例中,以FFmpeg将test.avi转换为test.mpg。在命令行中输 入:./ffmpeg –i test.avi –r 25 –s 720x400 test.mpg<回车>。其中原格式分辨率为320x240,将转为720x400,-r前面已经解释其含义,表示设置帧频为25。转换成 功后如图2-2所示,前后两种格式播放效果如图2-3所示。相应的,转换为其他格式做相应的变化即可。同时还可以在转换格式时进行强制的音视频转换,如 –vcodec + 格式,将会强制将视频按指定格式编码,-acodec +格式,将会强制按指定格式编码音频信息。在转换中有很多其他参数可以指定,如码率、分辨率、帧率等,具体按照ffmpeg的参数说明指定参数即可。但有 一条转低不转高的原则需要注意,即品质差的音视频转换不建议转换到品质好的音视频。

再说说如何在转换视频的时候将音频合成到视频中,且覆盖其原来的音频。这个现在摸索出两种方法。

方法一:需要两条命令实现,先在命令行中输入: ./ffmpeg –i test.avi -an –r 25 test.mpg <回车> 此时将生成一个没有声音的test.mpg视频,再在命令行中输入: ./ffmpeg –i test.mpg –i test.mp3 –r 25 test1.mpg<回车> 此时将会生成一个名为test1.mpg的视频。该视频播放时视频为test.avi的视频,但音频变为了test.mp3的音频了。

方法二:只要一条指令即可实现。在命令行中输入: ./ffmpeg –i test.avi –i test.mp3 –vcodec copy –acodec copy –r 25 test2.mpg<回车> 此时将会生成一个名为test2.mpg的视频,播放时其视频为test.avi的视频,音频为test.mp3。–vcodec copy为force video codec(‘copy’ to copy stream)。有一点需要注意,文件命名不能有空格,否则会导致编译时不能通过。另外,-an为不能使音频记录。

第三步:播放媒体播放我们转换的媒体,看看是否满足我们当初的愿望,不出什么差错的话,是完全能够满足我们的要求的。

3 FFmpeg视频截图
截取一张300x200尺寸大小的格式为jpg的一张图片: ./ffmpeg –i test.avi –y –f image2 –t 0.001
–s 300x200 test.jpg 要截取指定时间的图片,如5秒之后的: ./ffmpeg –i test.avi –y –f image2
–ss 5 –t 0.001 –s 300x200 test.jpg 其中,-ss后的单位为秒,也可写成:-ss 00:00:05。
把视频的前30帧转换为一个动态的gif图。需要说明的是,转换成功之后,如果用ffplay播放是看不出效果的,建议换成其他图片播放器播放。其转换命
令为: ./ffmpeg –i test.avi –vframes 30 –pix_fmt rgb24–y –f gif test.gif
也可以从视频中的第10秒开始截取后面的5秒内容转换为一个无限重播的动态gif图。其命令为: ./ffmpeg –i test.avi
–pix_fmt rgb24 –ss 10 –t 5 –y –f gif test.gif
上面两种动态gif都是只播一次,想让其一直播,可再加一个参数:-loop_output
0。

4 FFmpeg屏幕录制
屏幕录制其命令为: ./ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg
其他相关参数可自行添加。需要说明的是,各个版本的ffmpeg对屏幕录制的命令不一。如果你只想录制一个应用程序窗口或者桌面上的一个固定区域,那么可
以指定偏移位置和区域大小。使用xwininfo -frame命令可以完成查找上述参数。
注:ffmpeg的屏幕录制功能只能在Linux环境下有效。并且在配置时需要添加 –enable-x11grub 指令,默认关闭。

5 FFmpeg音视频采集
把摄像头的实时视频录制下来,存储为文件./ffmpeg -f video4linux -s 320x240 -r 10 -i
/dev/video0 test.asf 录音,其命令为: ./ffmpeg –i /dev/dsp -f oss test.mp3

[转载]FFmpeg完美入门[3] - FFmpeg功能及使用说明的更多相关文章

  1. [转载]FFmpeg完美入门[4] - FFmpeg应用实例

    1 用FFserver从文件生成流媒体 一.安装ffmpeg 在ubuntu下,运行sudo apt-get ffmpeg 安装ffmpeg,在其他linux操作系统下,见ffmpeg的编译过程(编译 ...

  2. [转载]FFmpeg完美入门[2] - FFmpeg参数说明

     1 通用选项 -L license -h 帮助 -fromats 显示可用的格式,编解码的,协议的. -f fmt 强迫采用格式fmt -i filename 输入文件 -y 覆盖输出文件 -t d ...

  3. [转载]FFmpeg完美入门[1] - FFmpeg介绍及安装

    1 FFmpeg简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视 频的完整解决方案.它包含了非常先 ...

  4. FFmpeg从入门到出家(HEVC在RTMP中的扩展)

    由金山云视频云技术团队提供:FFmpeg从入门到出家第三季: 为推进HEVC视频编码格式在直播方案中的落地,经过CDN联盟讨论,并和主流云服务厂商达成一致,规范了HEVC在RTMP/FLV中的扩展,具 ...

  5. Windows下FFmpeg快速入门

    本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视 ...

  6. Windows下FFmpeg高速入门

    本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进 ...

  7. Windows下FFmpeg快速入门 <第二篇>

    FFmpeg简介 FFmpeg是什么? FFmpeg是用于录制.转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音/视频编解码类库.FFmpeg 在Linux上开发,当可 ...

  8. FFmpeg 学习(七):FFmpeg 学习整理总结

    一.FFmpeg 播放视频的基本流程整理 播放流程: video.avi(Container) -> 打开得到 Video_Stream -> 读取Packet -> 解析到 Fra ...

  9. ffmpeg学习笔记-初识ffmpeg

    ffmpeg用来对音视频进行处理,那么在使用ffmpeg前就需要ffmpeg有一个大概的了解,这里使用雷神的ppt素材进行整理,以便于复习 音视频基础知识 视频播放器的原理 播放视频的流程大致如下: ...

随机推荐

  1. wp如何代码重启手机

    用过windows phone手机操作系统的人都知道,wp的系统设置界面很长一串,我们并不能快速进入想要的设置项,更受不了的是有些常用的设置项竟然在最下边.因为前段时间没事做,于是乎写了个wp的工具类 ...

  2. 运维朋友们,别再问需不需要学 Python 了!

    运维人员需不需要学开发?需不需要学 Python?PythonN 和 Shell 有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲. 现阶段,掌握一门开发语言已经成为高级运维工程师的必 ...

  3. 【题解】AC自动机题解合集

    最近貌似大家都在搞字符串?很长一段时间都没有写博客了……还是补一补坑吧. 感觉AC自动机真的非常优美了,通过在trie树上建立fail指针可以轻松解决多模匹配的问题.实际上在AC自动机上的匹配可以看做 ...

  4. 【POJ1741】Tree(点分治)

    [POJ1741]Tree(点分治) 题面 Vjudge 题目大意: 求树中距离小于\(K\)的点对的数量 题解 完全不觉得点分治了.. 简直\(GG\),更别说动态点分治了... 于是来复习一下. ...

  5. PHP关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题

    一.如何选择PHP5.3的VC9版本和VC6版本 VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本.      VC9版本是使用 ...

  6. 【二维树状数组】【CF10D】 LCIS

    传送门 Description 给你两个串,求他们的最长公共上升子序列 Input 第一行是第一个串的长度\(n\) 第二行\(n\)个数代表第一个串 第三行是第二个串的长度\(m\) 第四行\(m\ ...

  7. 【单调栈】【CF5E】 Bindian Signalizing

    传送门 Description 给你一个环,环上有一些点,点有点权.定义环上两点能相互看见当且仅当两点间存在一个弧使得弧上不存在一个点的点权大于着两个点.求一共有多少个点能互相看到 Input 第一行 ...

  8. 批量修改历史commit的用户名user.name邮箱user.email

    配置当前的用户名邮箱可以当前项目配置或者全局配置. 仅当前项目配置: git config user.name 'your-user-name' git config user.email 'your ...

  9. windows环境下封装条件wait和signal

    linux 环境有提供好的pthread_cond_wait() 和 phread_signal().pthread_broadcast() windows需要自己封装,利用semophore控制线程 ...

  10. 网站访问日志User Agent对照表

    percent useragent system user_agent_string_md5 8.9% Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleW ...