应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

使用ffmpeg进行视频与音频格式转换。avi转mp4,flac转mp3,m4a转mp3等

8316人阅读 2019/8/30 12:11 总访问:5194598 评论:0 收藏:0 手机
分类: 随笔

ffmpeg简介:

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

用得比较广泛,好像格式工厂和腾讯视频等很多播放器内核都用了它,你可以用他来做一个自己的格式转化工具与视频播放器


视频音频界的大佬:https://blog.csdn.net/leixiaohua1020


ffmpeg下载:

源码地址:git clone https://git.ffmpeg.org/ffmpeg.git ffmpe

下载地址:http://ffmpeg.org/download.html

云盘链接:https://pan.baidu.com/s/135qlv4ByPdYxWgJgIfF3UQ 

提取码:61yq 



windows环境:

然后自己点击下载即可




|2021-2-22更新,现在下载和以前有些不一样了






下载后解压在Bin目录可以看到,以前使用得三个exe



|FFMPEG分为3个版本:Static,Shared,Dev。前两个版本可以直接在命令行中使用,他们的区别在于:

Static里面只有3个应用程序:

       ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。

       

Shared里面除了3个应用程序:

       ffmpeg.exe,ffplay.exe,ffprobe.exe之外,还有一些Dll,比如说avcodec-54.dll之类的。

Shared里面的exe体积很小:

       他们在运行的时候,到相应的Dll中调用功能。Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文件xxx.h,这个版本不包含exe文件。


|不同工具的作用:

  • ffmpeg.exe:音视频转码、转换器

  • ffplay.exe:简单的音视频播放器

  • ffserver.exe:流媒体服务器

  • ffprobe.exe:简单的多媒体码流分析器



我这里下载的是static版本,下载完后直接解压:

能看到三个应用程序:


使用cmd命令在这个目录执行一下查看版本的命令: ffmpeg -version

能看到就说明执行成功了


转化视频格式:

很简单只需要一条命令即可。(要在ffmpeg.exe所在目录执行,或者使用其他方式能够找到这个命令的)

把dmg.mp4转成.avi格式:

      ffmpeg -i dmg.mp4 output.avi

把dmg.mp4转成.webm格式:

      ffmpeg -i dmg.mp4 otest.webm


转化成功效果如下:

wmv转换成mp4:
ffmpeg -i  xx.wmv output.mp4



音频格式转化之flac转成mp3:

转化命令如下:
ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3

循环转化:
如果需要转化的音乐文件flac很多,一个一个转化太慢了,就可以循环转化
把下载的ffmped复制到需要转化歌曲的文件夹中,或者是把歌复制到下载的ffmped文件夹中,或者不在一个文件夹中需要指明路径即可反正要命令能够找到就行了。

创建一个记事本,加入下面的代码,然后把记事本的后缀修改为bat点击执行即可。

  1. for %%f in (*.flac) do (ffmpeg -i "%%f" -ab 320k -map_metadata 0 -id3v2_version 3 "%%f.mp3")


转化的音乐和ffmped.exe目录不一致的时候也是可以的,指定一下ffmped.exe目录就行了,比如我这里的目录是放在的 D:\DLL\ffmpeg\ffmpeg.exe

  1. for %%f in (*.flac) do (D:\DLL\ffmpeg\ffmpeg -i "%%f" -ab 320k -map_metadata 0 -id3v2_version 3 "%%f.mp3")



linux或者是mac可以使用如下命令进行循环转化:

  1. find . -name "*.flac" -exec ffmpeg -i {} -ab 160k -map_metadata 0 -id3v2_version 3 {}.mp3 \;




音频格式转化之m4a转mp3:

转化命令如下:
ffmpeg -i a.m4a -y -acodec libmp3lame -aq 0 a.mp3

循环转化:
和上面的循环转化一个道理,创建一个记事本,加入下面的代码,修改成bat执行即可

  1. @echo off & title
  2. for %%a in (*.m4a) do (
  3.  ffmpeg.exe -i "%%~sa" -y -acodec libmp3lame -aq 0 "%%~na.mp3"
  4. )
  5. pause

转化的音乐和ffmped.exe目录不一致的时候也是可以的,指定一下ffmped.exe目录就行了,比如我这里的目录是放在的 D:\DLL\ffmpeg\ffmpeg.exe

  1. @echo off & title
  2. for %%a in (*.m4a) do (
  3.  D:\DLL\ffmpeg\ffmpeg.exe -i "%%~sa" -y -acodec libmp3lame -aq 0 "%%~na.mp3"
  4. )
  5. pause




c#调用:

最简单的方式就是直接使用c#来执行命令,得到命令执行的返回值,然后根据返回值来提醒是否转化成功





欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

Session

2022/6/16 9:19:18

工作中正好用到定时器

[嘻嘻]

NET Core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

使用OLEDB读取不同版本Excel的连接字符串设置

使用OleBD读取excel的时候,excel不同的版本,连接字符串的写法也会不一样。///<summary> ///读取excel ///</su...

C 使用CancellationTokenSource取消多线程

有时间我们在使用多线程的时候,需要取消线程的执行,可以使用CancellationTokenSource来取消对Task开辟多线程的取消如下:...

使用爬虫刷csdn博客访问量

首先了解一下常见反爬虫的检测方法频率监测:有些网站会设置一种频率监测的机制,对于同一IP,若在一定时间内访问的速度超...

Idea下使用maven搭建SSM(一):SpringMVC

Spring MVC是一款基于MVC架构模式的轻量级Web框架,其目的是将Web开发模块化,对整体架构进行解耦,简化Web开发流程。下面...

Idea下使用maven搭建SSM(二):MyBatis

开发Web应用,数据的存储和处理往往离不开数据库和SQL语句。在使用Java开发的Web应用中,自然也少不了连接数据库的步骤。在...

使用 微软自带语音合成类库

//引入语音合成名称空间 usingSystem.Speech.Synthesis; classA { voidtest1() { //实例化并指定字符串播放合成读音 ...

如何使用图标像使用文字一样,使用文本图标的方法

1.首先在Iconfont-阿里巴巴矢量图标库上面找到你需要的图标然后加入你的购物车然后选择图标;注意:每个类型的图标会大小不...

使用七牛云的cdn服务,提高图片的加载速度

CDN介绍CDN的全称是Content Delivery Network,即内容分发网络。CDN加速主要是加速静态资源,如网站上面上传的图片、媒体,...

.net core 使用session

tip:net core 2.2后可以直接启用session了,不用在自己添加一次session依赖,本身就添加了使用nuget添加引用Microsoft.AspN...

使用OutLook发送邮件

publicstaticvoidOutlook(stringSubject,stringTextBody,stringFromAdd,stringFromPass,stringTo,stringCC,List<string&...

SQL Server 中使用游标

--声明一个游标 DECLAREMyCursorCURSOR FORSELECTTOP5FBookName,FBookCodingFROMTBookInfo//定义一个叫MyCursor的游标,...

Windows使用wireshark抓包小心得

wireshrak是个网络抓包工具,常用。但是在数据较大的网络环境中直接使用软件抓包会导致wireshark卡死。为什么呢 ?网卡瞬间...

Oracle自定义函数的简单使用

一.最最最简单的返回一个数字的函数createorreplacefunctionfun_show returnint--申明返回值 as begin return1; end;...

Oracle事务的简单使用

事务:  事务是一个整体,这些操作要么全部执行成功,要么全部不执行。使用事务的原因:保证数据的安全有效。事务的四个特...

Oracle使用游标

其实游标就是把查询的结果放入游标中,然后在去游标里边读取。相当于使用游标做了一个中转,而游标是可以作为参数进行传递...