返回顶部
首页 > 资讯 > 后端开发 > Python >用ffmpeg 提取MP3
  • 830
分享到

用ffmpeg 提取MP3

ffmpeg 2023-01-31 06:01:10 830人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

格式转换 (将file.avi 转换成output.flv) FFmpeg -i  file.avi  output.flv       -i 表示输入文件 :现在有个视频video.avi,有个音频 audio.mp3,将其合并成o

格式转换 (将file.avi 转换成output.flv)

FFmpeg -i  file.avi  output.flv

      -i 表示输入文件

:现在有个视频video.avi,有个音频 audio.mp3,将其合并成output.avi

两个命令                     ( video2.avi 是中间文件 ,用完可删)

ffmpeg -i video.avi -vcodec copy -an video2.avi  
ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi

-i 表示输入文件

 -vcodec copy 表示 force video codec ('copy' to copy stream) 这个不知怎么译 ,估计是直接copy

  -acodec copy    这个说的应该是音频了   跟上面一样

-an : 表示  disable audio  估计是audio no 之类的缩写   表示去掉video.avi 原有的音频

方法2 好像可以直接指定两个输入文件 ,

ffmpeg -i /tmp/a.wav  -i /tmp/a.avi /tmp/a.avi   两个文件 的顺序很重

从视频里提取声音(声音与视频的分离)

ffmpeg  -i 人生若只如初见.flv  -vn r.mp3  从flv 文件 中提取声音并保存为mp3 格式  

      -vn : 表示忽略视频 估计是video no 之类的缩写

ffmpeg  -i 人生若只如初见.flv  -an  r.flv   只留视频不留声音

 -an : 表示忽略声音估计是audio no 之类的缩写


从视频里提取图片( )

ffmpeg -i test.avi -y -f p_w_picpath2 -ss 8 -t 0.001 -s 350x240 test.jpg       
-ss 第8秒处 截一图

压缩mp3 文件

如果你觉得mp3 文件 有点大,想变小一点那么可以通过-ab 选项改变音频的比特率(bitrate)

ffmpeg -i input.mp3 -ab 128 output.mp3   //这里将比特率设为128

你可以用file 命令查看一下源文件 的信息

z.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo

其中的192 kbps 就是这个东西

mp3中比特率的含义是:在压缩音频文件至mp3时,由压缩软件所确定数码文件在播放时每秒传送给播放器大小,其单位是:千位/秒;英文的含义是:kbps - = kilobits per second。现在mp3文件的最高数位率是320 kbps。这样的文件体积很大,每分钟的音乐超过两兆字节。如果采用可变比特率(VBR)编码来生成mp3文件,获得与320 kbps相当音质,文件的体积会缩小25~50%。请注意:播放时间相同,而歌曲不同,所获的压缩mp3文件的一般不相同,这是因为VBR编码所生成的mp3文件的大小不仅仅取决于播放时间的长度,还取决于源音频文件的其它因素。


录音(要有可用的麦克风,并且如果用alsa 的话,好像得安alsa-oss,重启)

ffmpeg  -f oss -i /dev/dsp   out.avi  (should  hava oss or alsa-oss)

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

ffmpeg   -f alsa -ac 2 -i pulse  (should hava PulseAudio)


  oss 是linux 下的声音相关的东西,与alsa 一样,不过oss 是商业的, 而/dev/dsp 是oss 用到的麦克的设备吧,可以这样理解

屏幕录像

ffmpeg -f x11grab -s xga -r 10 -i :0.0+0+0 wheer.avi  

ffmpeg -f x11grab  -s 320x240 -r 10 -i :0.0+100+200 wheer.avi

:0:0 表示屏幕(个人理解,因为系统变量$DISPLAY值就是:0.0)  而100,表示距左端100象素,200表示距上端200

-s 设置窗口大小

-r 10 好像是设置频率,不懂

ffmpeg -f x11grab -s xga-qscale 5   -r 10 -i :0.0+0+0 wheer.avi  

-qscale 8 设定画面质量,值 越小越好

屏幕录像,同时录音

ffmpeg -f oss -i /dev/dsp        -f x11grab -r 30 -s 1024x768 -i :0.0  output.mkv

ffmpeg    -ac 2 -f oss  -i  /dev/dsp   -f x11grab -r 30 -s 1024x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv

看到这,你会发现这个命令有多强大,

如果我屏幕上打开了一个窗口,我只想录这个窗口的内容,如何确定这个窗口的坐标位置呢

可以用另外一个命令

xwininfo 输入这个命令后,用鼠标点选目标窗口,

就会出现目标窗口的坐标,宽高等一系列信息

Absolute upper-left X:  276
 Absolute upper-left Y:  57
 Relative upper-left X:  2
 Relative upper-left Y:  23
 Width: 742
 Height: 499
 Depth: 24
 Visual: 0x21
 Visual Class: TrueColor
 Border width: 0
 Class: InputOutput
 ColORMap: 0x20 (installed)
 Bit Gravity State: NorthWestGravity
 Window Gravity State: NorthWestGravity
 Backing Store State: NotUseful
 Save Under State: no
 Map State: IsViewable
 Override Redirect State: no
 Corners:  +276+57  -262+57  -262-244  +276-244
 -geometry 80x24+274+34 看到这一行了没 ()


比如根据上面的信息

ffmpeg -f oss  -i  /dev/dsp      -f  x11grab -r 30  -s 1280x752 -i :0.0+0+23  output.avi
Another thing you can change is the video frame rate (FPS). In the example above we used -r 30 which means capture at 30 FPS. You can change this value to whatever frame rate you want.

这个 -r 30 应该是每秒钟取样几次,估计是一秒截三十次屏,

切头去尾

ffmpeg -ss 00:00:10 -t 00:01:22 -i 五月天-突然好想你.mp3  output.mp3

只要 从第10秒开始截取,共截取1:22时长的内容

视频文件的连接,如两个flv 文件 连接成一

好像必须先将文件 转成mpg ,dv 等格式的文件后才能进行连接

  • 连接复数的AVI影片档之范例(在此范例中须一度暂时将AVI档转换成MPEG-1档(MPEG-1, MPEG-2 PS, DV格式亦可连接))

ffmpeg -i input1.avi -sameq inputfile_01.mpg -r 20
ffmpeg -i input2.avi -sameq inputfile_02.mpg  -r 20
cat inputfile_01.mpg inputfile_02.mpg > inputfile_all.mpg
ffmpeg -i inputfile_all.mpg -sameq outputfile.avi上面将  input1.avi    input2.avi 合并成outputfile.avi-sameq  表示  相同的质量(可能指的是画面,不太清楚)
-r 指频率

=====================================================================下面是wiki 上给的几个例子

参数

FFmpeg可使用众多参数,参数内容会根据ffmpeg版本而有差异,使用前建议先参考参数及编×××的叙述。此外,参数明细可用 ffmpeg -h 显示;编×××名称等明细可用 ffmpeg -formats 显示。

下列为较常使用的参数。

[编辑]主要参数

[编辑]影像参数

[编辑]声音参数

[编辑]注意事项

例如,单位为bits/sec的情况时,欲指定流量64kbps时需输入‘ -ab 64k ’;单位为kbits/sec的情况时则需输入‘ -ab 64 ’。

[编辑]范例

ffmpeg -i inputfile.mpg -f mp4 -acodec libfaac -vcodec mpeg4 -b 256k -ab 64k outputfile.mp4
ffmpeg -i inputfile.mp3 -f mp4 -acodec libaac -vn -ab 64k outputfile.mp4
ffmpeg -i inputfile.vob -f mpeg -acodec mp2 -vcodec mpeg1video -s 352x240 -b 1152k -ab 128k outputfile.mpg
DV格式亦可连接)、
ffmpeg -i input1.avi -sameq inputfile_01.mpg
ffmpeg -i input2.avi -sameq inputfile_02.mpg
cat inputfile_01.mpg inputfile_02.mpg > inputfile_all.mpg
ffmpeg -i inputfile_all.mpg -sameq outputfile.avi
=============================================================================
Http://ffmpeg.org/ffmpeg-doc.html
http://ubuntuforums.org/showthread.PHP?t=1392026
同时搞明白的一些问题
在alsa 体系中声卡(也可能是麦克风,)叫hw:0,0 而在oss 体系中叫/dev/dsp (用词可能不太专业) Linux在安装了声卡后,会有一些设备文件生

成。

采集数字样本的
/dev/dsp文件,针对混音器的
/dev/mixer文件,用于音序器的
/dev/sequencer,
/dev/audio文件一个



基于兼容性考虑的声音设备文件。只要向
/dev/audio中输入
wav文件就能发出声音。而对
/dev/dsp文件读取就能得到
WAV文件格式的声音文
件。


--结束END--

本文标题: 用ffmpeg 提取MP3

本文链接: https://lsjlt.com/news/190559.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 用ffmpeg 提取MP3
    格式转换 (将file.avi 转换成output.flv) ffmpeg -i  file.avi  output.flv       -i 表示输入文件 :现在有个视频video.avi,有个音频 audio.mp3,将其合并成o...
    99+
    2023-01-31
    ffmpeg
  • 获取MP3信息
      很多时候,我们有必要的到一些歌曲的信息,比如歌手的专辑,歌手名 歌曲名,下面就是java写的获取MP3歌曲信息首先加入 jid3lib-0.5.4.jar包  import java.io.IOException;import org....
    99+
    2023-01-31
    信息
  • 利用Golang和FFmpeg实现视频帧提取的方法
    要利用Golang和FFmpeg实现视频帧提取,你可以使用Go的os/exec包来运行FFmpeg命令。下面是一个简单的示例代码:`...
    99+
    2023-10-08
    Golang
  • 使用Python怎么爬取MP3音频
    使用Python怎么爬取MP3音频?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。r: play/getdatacallback: jQuery19108...
    99+
    2023-06-06
  • Golang与FFmpeg: 如何实现音频混音和提取
    要在Golang中实现音频混音和提取,我们可以使用FFmpeg库。FFmpeg是一个开源的多媒体框架,可以处理音频、视频和其他多媒体...
    99+
    2023-10-08
    Golang
  • FFMPEG Tips (3) 如何读取
    本文是我的《FFMPEG Tips》系列的第三篇文章,上篇文章 介绍了如何提取整个音视频码流的媒体信息,包括:封装格式、编码格式、视频的分辨率、帧率、码率、音频的采样率、位宽、通道数等等,而本文则关注得更细一点,看看如何利用 ffmpeg ...
    99+
    2023-01-31
    FFMPEG Tips
  • C++怎么使用ffmpeg实现rtsp取流
    今天小编给大家分享一下C++怎么使用ffmpeg实现rtsp取流的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。C++ 使用f...
    99+
    2023-06-30
  • C++使用ffmpeg实现rtsp取流的代码
    目录C++ 使用ffmpeg实现rtsp取流环境下载安装编译依赖配置ffmepg采用rtsp取流流程图CMakeLists.txt编写方法实现代码C++ 使用ffmpeg实现rtsp...
    99+
    2024-04-02
  • Java如何实现获取MP3音频时长
    这篇文章主要介绍Java如何实现获取MP3音频时长,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Maven依赖<dependency>      ...
    99+
    2023-06-25
  • Java轻松使用工具类实现获取MP3音频时长
    获取mp3格式音频时长。 Maven依赖 <dependency> <groupId>org</groupI...
    99+
    2024-04-02
  • FFmpeg如何使用
    这篇文章将为大家详细讲解有关FFmpeg如何使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。FFmpeg 是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤和播放人类和机器创造的几乎所有...
    99+
    2023-06-28
  • 如何获取 ffmpeg 命令的文件输出?
    本篇文章给大家分享《如何获取 ffmpeg 命令的文件输出?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认...
    99+
    2024-04-04
  • linux下ffmpeg怎么用
    这篇文章主要介绍了linux下ffmpeg怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。格式转换 (将file.avi 转换成output.flv)#ffmpeg&nb...
    99+
    2023-06-12
  • delphi怎么调用ffmpeg
    要在Delphi中调用FFmpeg,你需要使用FFmpeg库的动态链接库(DLL),然后使用Delphi的外部函数来调用该库。以下是...
    99+
    2023-10-12
    delphi
  • golang怎么调用ffmpeg
    在Go语言中调用FFmpeg,需要借助外部命令执行的方式,可以使用os/exec包来执行FFmpeg命令。首先,确保已经安装了FFm...
    99+
    2023-10-20
    golang
  • 如何在Golang中获取mp3文件的持续时间?
    在Golang中获取mp3文件的持续时间是一个常见的需求。php小编小新将为您介绍一种简单有效的方法。首先,我们需要使用第三方库来处理mp3文件。推荐使用go-audio库,它提供了一...
    99+
    2024-02-09
    overflow
  • php如何利用ffmpeg获取视频第一帧为缩略图
    目录phpffmpeg获取视频缩略图1.环境2.centos7安装ffmpeg3.项目安装ffmpeg包4.php代码附Fmpeg读取视频信息总结php ffmpeg获取视频缩略图 ...
    99+
    2024-04-02
  • php中怎么用ffmpeg获取视频第一帧为缩略图
    这篇文章主要介绍了php中怎么用ffmpeg获取视频第一帧为缩略图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php中怎么用ffmpeg获取视频第一帧为缩略图文章都会有所收获,下面我们一起来看看吧。php f...
    99+
    2023-06-29
  • Python中JsonPath提取器和正则提取器怎么使用
    这篇文章主要介绍了Python中JsonPath提取器和正则提取器怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中JsonPath提取器和正则提取器怎么使用文章都会有所收获,下面我们一起来看...
    99+
    2023-07-05
  • 42、 ffmpeg 的简单使用
    一、ffmpeg-python 安装 pip3 install ffmpeg-python 也可以通过克隆源码返回式进行安装: git clone git@github.com:kkroening/ffmpeg-python.g...
    99+
    2023-01-31
    简单 ffmpeg
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作