一、背景

偶然的机会接触了ffmpeg,当时是从B站下载的视频转移到笔记本上看。使用b站手机客户端下载的视频格式为m4s的两个文件(video.m4s和audio.m4s),需要转成普通播放器支持的mp4格式,得以知道支持音视频转码的ffmpeg这个强大的开源工具。

二、软件介绍

ffmpeg支持windows、linux和mac,安装简单,使用方便。

Windows:

官网ffmpeg.org/ 下载,官网只提供源码,初次学习可以从github下载编译后的可执行文件github.com/BtbN/FFmpeg… ,下载后解压即可使用,目录结果如下:

bin目录下是可执行文件:

ffmpeg

ffmepeg用于音视频转码,文档地址:ffmpeg.org/ffmpeg.html

进入bin目录执行ffmpeg检验是否安装成功,如下图:

将音频视频合并输出到mp4,使用ffmpeg,指令:

ffmpeg -i video.m4s -i audio.m4s -c:v copy -strict experimental 输出名.mp4
复制代码

ffmpeg主要是通过命令操作,如获取视频信息:

ffmpeg -i video.avi
复制代码

音频格式转MP3:

ffmpeg -v error -i input output.mp3
复制代码

ffplay

ffplay用来音视频播放,文档地址:ffmpeg.org/ffplay.html

ffplay.exe test.mp4
复制代码

弹出播放窗口,如下图

ffprobe

ffprobe主要用来查看多媒体文件的信息,文档地址:ffmpeg.org/ffprobe.htm…

ffprobe.exe test.mp4
复制代码

获取音视频总体信息: 播放时长20.35s,从0秒开始,速率为6322kb/s

部分参数:

-v  日志级别(取值:error、warning、info等)

-pint_format 输出格式(取值:defalut、csv、json、xml等)

linux

Linux使用规则跟windows类似,以下介绍下linux环境下安装步骤:

1.安装Nux Dextop Yum 源

由于CentOS没有官方FFmpeg rpm软件包。但是,我们可以使用第三方YUM源(Nux Dextop)完成此工作。

CentOS 7

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
复制代码
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
复制代码

可能出现问题:

(1)缺少依赖

处理方法:

rpm -Uvh  http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
复制代码

(2)执行命令报错,状态码127

处理方法: 共享软件的共享库

  • 执行命令vim /etc/ld.so.conf.d/ffmpeg.conf
  • 然后添加内容ffmpeg下的lib路径(如/root/ffmpeg/lib),之后保存并退出
  • 然后执行ldconfig使配置生效即可

CentOS 6

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
复制代码
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
复制代码

2.安装FFmpeg 和 FFmpeg开发包

sudo yum install ffmpeg ffmpeg-devel -y
复制代码

三、Java示例

windows环境运行批处理命令的方式,linux环境执行shell脚本:

import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;public static void main(String[] args) throws Exception {String batPath = "F:\ffmpeg\22e12ea6a66141668d2391d5a6d30b76.bat";DefaultExecutor executor = new DefaultExecutor();CommandLine line = new CommandLine(batPath);executor.execute(line);
}复制代码

bat文件内容(即需运行的命令):

 E:\ffmpeg\bin\ffmpeg.exe -v error -i "F:\音频\1.aac" "F:\音频\\ffmpeg\1.mp3"
复制代码

四、总结

以上内容只是简单介绍ffmpeg软件基本使用方法,想要集成到公司产品中还需要一定的前端、运维等相关知识等。网络上搜寻一番,发现市面上已经有不少类似产品,集成了大部分文档转码,并实现在线预览在线播放等功能。

基于ffmpeg实现音视频转码相关推荐

  1. 基于ffmpeg的音视频转码、压制、录屏、裁切、合并、提取

    ffmpeg转码.压制.录屏.裁切.合并.提取 1.ffmpeg介绍 2.转换格式 3.音频转码 4.视频转码 5.码率控制模式 6.合并.提取音视频 7.截取.连接音视频 8.截图.水印.动图 9. ...

  2. 基于FFMPEG的音视频截取(C++Qt 版)

    基于FFMPEG的音视频截取(C++Qt 版) 这篇博客是基于上篇博客的: https://blog.csdn.net/liyuanbhu/article/details/121744275 上篇博客 ...

  3. JAVA调用FFmpeg实现音视频转码加水印功能

    目录 目录 写在前面 MAVEN引用 获取音视频基本信息 音频转码成Mp3格式 视频转码成Mp4格式 视频转码成Mp4并添加文字水印 视频转码成Mp4并添加图片水印 测试代码 写在前面 如今各大云厂商 ...

  4. 音视频转码FFmpeg

    前言 音视频转码主要指这样的概念: 容器格式的转换,比如MP4转换为MOV 容器中音视频数据编码方式转换,比如H264编码转换成MPEG4编码,MP3换为AAC 音视频码率的转换,比如4M的视频码率降 ...

  5. ffmpeg学习(13)音视频转码(2)使用filter

    ffmpeg学习(10)音视频文件muxer(1)封装格式转换 中介绍了媒体文件的封装格式转换,ffmpeg学习(11)音视频文件muxer(2)多输入混流 中介绍了音视频的混流,本文介绍基于ffmp ...

  6. 用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS

    用FFMPEG SDK进行视频转码压缩的时候,转码成功后去看视频的内容,发现音视频是不同步的.这个的确是一个恼火的事情.我在用FFMPEG SDK做h264格式的FLV文件编码Filter的时候就碰到 ...

  7. 基于FFMPEG 的跨平台视频编解码研究

    第33卷 第11期 2011年11月 武 汉 理 工 大 学 学 报 JOURNALOF WUHANUNIVERSITYOFTECHNOLOGY Vol.33 No.11 췍췍췍췍췍췍췍췍췍췍췍췍췍췍 ...

  8. FFMPEG开源音视频项目学习汇总

    ~非常感谢雷霄骅老师的无私帮助,本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/42658139~       本文汇总一下自己视音 ...

  9. 基于FFmpeg的运动视频分析

    本文来自英特尔资深软件工程师李忠,张华在LiveVideoStackCon 2018大会上的分享,由LiveVideoStack整理而成.分享中两位老师重点介绍了基于FFmpeg的运动视频分析技术架构 ...

最新文章

  1. PCB模拟地和数字地的处理
  2. Python数据可视化2.6 一些最好的可视化实践
  3. C++ 编译,运行过程 详解。
  4. 5种Python逐行读取文件的方式
  5. jquery实现截取pc图片_如何优雅的对网页截取长图
  6. Android之手机出现已安装了存在签名冲突的同名数据包的原因及解决办法
  7. 【转】C++类的sizeof大小
  8. javaScript命名规范
  9. 《R语言与数据挖掘最佳实践和经典案例》—— 3.5 将图表保存到文件中
  10. Java8 map转list集合
  11. 在 Word 中插入域代码并设置域代码的格式(转)
  12. foxmail超大附件服务器文件怎么删,foxmail邮件太大怎么发?foxmail发送超大附件的方法...
  13. 【PHP】面试经历总结之——新浪微博
  14. 【图像篡改 ECCV2018】Fighting Fake News: Image Splice Detection via Learned Self-Consistency
  15. 有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号
  16. php中哪些不能作为常量名,【单选题】下列选项中,不能作为常量值的是( )。A. php B. array(1,2,3) C. true D. 100...
  17. 要实现一台电脑可以上公司内网也可以访问外网
  18. 使用IDEA整合SpringMVC和Mybatis(SSM框架)(二)
  19. 自己动手写股票数据分析软件之数据获取
  20. 长期换衣行人重识别(Long-Term Clothes-Changing Person Reid)数据集汇总

热门文章

  1. 服务器ddr3和ddr3性能对比,内存DDR4与DDR3哪个好 ddr3和ddr4性能差多少
  2. python 实现youtube 上传
  3. 手机作为扩展屏——Xdisplay使用教程
  4. 设计与实现Web前端开发的基础
  5. JavaScript前端批量下载图片文件打包下载
  6. Excel数据分析从入门到精通(五)函数进阶-52个Excel函数之逻辑类函数
  7. 重装win7系统、制作win7U盘启动盘【官方纯净版,不依靠任何第三方插件】
  8. 【制作电子书的软件】云展网教程 | 如何把电子杂志放到博客或论坛里?
  9. 使用ova镜像进行edx平台的部署、配置过程
  10. 服务器登录密码 被修改密码,服务器登录密码被人改