在优酷上下载了一些教学视频,为了把它们放到mp3里面,需要从这些flv文件中提取出音频数据并存储为mp3格式。

操作系统是centos 5.3。

在网上搜索了一下,找到以下方法:
方法一:使用mencoder,例如:mencoder -of avi -nosound -ovc copy in.flv -o out_just_vid.avi
方法二:使用mplayer,例如:mplayer -dumpaudio nodame_theme.flv -dumpfile nodame_theme.mp3
方法三:使用ffmpeg。
以上三种方法,可参看:
http://linux.byexamples.com/archives/229/extract-audio-from-video-or-online-stream/
http://www.linuxquestions.org/questions/linux-desktop-74/copy-mode-extract-of-audio-from-youtube-flv-video-508026/

这里使用功能非常强大的ffmpeg来完成这项任务。

ffmpeg简介

ffmpeg的首页:http://www.ffmpeg.org/index.html
FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library.

ffmpeg安装

从http: //www.ffmpeg.org/releases/ffmpeg-checkout-snapshot.tar.bz2下载ffmpeg的源代码。解 压后进入源代码目录,三步走(configuer, make, make install)来安装它,使用./configure --help看具体的安装配置选项。

使用ffmpeg从flv文件中提取音频并转换

首先查看flv文件的信息:
[whb@jcwkyl introduction_to_algorithm]$ ffmpeg -i Lecture_1.flv
FFmpeg version SVN-r21915, Copyright (c) 2000-2010 the FFmpeg developers
  built on Feb 20 2010 18:28:18 with gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
  configuration: --enable-encoder=mp3
  libavutil     50. 9. 0 / 50. 9. 0
  libavcodec    52.54. 0 / 52.54. 0
  libavformat   52.52. 0 / 52.52. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
[flv @ 0x8a533a0]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 15.00 (15/1)
Input #0, flv, from 'Lecture_1.flv':
  Metadata:
    duration        : 4835
    starttime       : 0
    totalduration   : 4835
    width           : 320
    height          : 240
    videodatarate   : 196
    audiodatarate   : 63
    totaldatarate   : 264
    framerate       : 15
    bytelength      : 159348112
    canseekontime   : true
    sourcedata      : CiaMM
    purl            :
    pmsg            :
  Duration: 01:20:35.06, start: 0.000000, bitrate: 200 kb/s
    Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 200 kb/s, 15 tbr, 1k tbn, 2k tbc
    Stream #0.1: Audio: aac, 22050 Hz, stereo, s16
At least one output file must be specified

上面输出中用红色标记的两行显示出这个文件的视频和音频数据的各种属性,其中音频数据使用的是aac编码,这里需要把音频转换成mp3格式,所以需要aac的解码器和mp3的编码器。
查看ffmpeg是否有这些工具。
[whb@jcwkyl introduction_to_algorithm]$ ffmpeg -codecs | grep aac
FFmpeg version SVN-r21915, Copyright (c) 2000-2010 the FFmpeg developers
  built on Feb 20 2010 18:28:18 with gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
  configuration: --enable-encoder=mp3
  libavutil     50. 9. 0 / 50. 9. 0
  libavcodec    52.54. 0 / 52.54. 0
  libavformat   52.52. 0 / 52.52. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
 DEA    aac             Advanced Audio Coding
D表示decoder,E表示encoder,A表示Audio Codec。aac的编码解码器都存在。
再来查看是否提供了mp3的编码器,同样使用命令:ffmpeg -codecs,在输出结果中发现只有mp2的编码器,而没有mp3编码器:
[whb@jcwkyl introduction_to_algorithm]$ ffmpeg -codecs
......
 D A    mp1             MP1 (MPEG audio layer 1)
 DEA    mp2             MP2 (MPEG audio layer 2)
 D A    mp3             MP3 (MPEG audio layer 3)
......
所以先试着使用mp2编码器进行转换:
[whb@jcwkyl introduction_to_algorithm]$ ffmpeg -i Lecture_1.flv -f mp2 -vn Lecture_1.mp3
这条命令中,-i表示input file,-f表示输出格式,-vn表示“vedio not",即禁止视频输出,最后转换后的文件是Lecture_1.mp3。
转换完成后,使用file命令查看Lecture_1.mp3的文件格式:
[whb@jcwkyl introduction_to_algorithm]$ file Lecture_1.mp3
Lecture_1.mp3: MPEG ADTS, layer II, v2,  64 kBits, 22.05 kHz, Stereo
转换前后文件大小对比:
[whb@jcwkyl introduction_to_algorithm]$ du -hs Lecture_1.*
153M    Lecture_1.flv
37M     Lecture_1.mp3

使用播放器播放Lecture_1.mp3,完全正常。

从flv文件中提取音频并存储为mp3格式相关推荐

  1. 采用FFmpeg从视频中提取音频(声音)保存为mp3文件

    采用FFmpeg从视频中提取音频(声音)保存为mp3文件 作者:雨水,日期:2016年1月9日 CSDN博客:http://blog.csdn.net/gobitan 摘要:看到好的视频文件,如果想把 ...

  2. 使用ffmpeg从视频文件中提取音频文件、视频抽帧和切割视频

    目录 ffmpeg下载 使用ffmpeg从视频文件中提取音频文件 批量提取文件夹下多个视频文件的音频 使用ffmpeg从视频文件中提取视频帧 使用ffmpeg将按固定时长将视频切割成多个小片段 将分割 ...

  3. 从flv文件中提取h264码流(使用av_bsf_send_packet和av_bsf_receive_packet)

    最近在学习音视频开发,需要开发一个从flv文件中提取h264码流的demo. 具体的原理,在雷神的文章中写的很清楚了: https://blog.csdn.net/leixiaohua1020/art ...

  4. Python从视频文件中提取音频

    利用python库moviepy或者ffmpeg处理 # 这是一个示例 Python 脚本. from moviepy.editor import * import tkinter as tk fro ...

  5. [SimplePlayer] 4. 从视频文件中提取音频

    提取音频,具体点来说就是提取音频帧.提取方法与从视频文件中提取图像的方法基本一样,这里仅列出其中的不同点: 1. 由于目的提取音频,因此在demux的时候需要指定的是提取audio stream Au ...

  6. matlab从mp4文件中提取音频,怎么提取MP4视频中的音频,将MP4格式转换为MP3格式

    原标题:怎么提取MP4视频中的音频,将MP4格式转换为MP3格式 MP4已经成为互联网上最流行的视频格式,我们从各种视频资源网站上下载到的视频文件大部分都是以MP4格式存储的.尤其是一些高品质的歌曲M ...

  7. matlab从mp4文件中提取音频,如何提取mp4中的音频文件 怎样将视音频文件分离,保存视频中的音频文件...

    本以为立秋后的天气会比较凉爽的,但没想到还是依旧的炎热,尤其是昨天,一天的时间就让我脸上起了很多的小疙瘩,感觉像痱子似的.原来是"秋老虎"作祟,"秋老虎"发威果 ...

  8. python从视频中提取音频信号_通过python从音频文件中提取音频

    我认为你的问题有三个不同的部分: >如何将音频文件加载到python中? >如何计算python中的频谱? >如何处理频谱? 1.如何在python中加载音频文件? 使用scipy可 ...

  9. python提取视频中的音频 代码_如何使用python从视频文件中提取音频?

    I want to write a python program that could extract audio from a video file (e.g. video.avi). Is the ...

最新文章

  1. printf(%d, -10u); 这个输出什么呀, 0或1?
  2. PL/SQL基础篇4(游标)
  3. Redis的学习记录
  4. 优先级队列 c语言,队列优先级
  5. C++ Primer Plus学习:第十章
  6. 神圣的NLP!一文理解词性标注、依存分析和命名实体识别任务
  7. P4169-[Violet]天使玩偶/SJY摆棋子【CDQ分治】
  8. jBPM和Drools工作台中的用户和组管理
  9. Kaggle入门——房价预测
  10. 插入排序算法(C实现)
  11. 关于马克飞象中的Latex语法与CSDN中的区别
  12. android sd卡 f2fs,显著提速!谷歌Pixel 3/3 XL使用了三星F2FS文件系统
  13. AttributeError: 'module' object has no attribute 'urlopen报错解决办法
  14. openstack Juno安装——之手动安装
  15. 第十八章 计算机取证
  16. VIJOS-P1152 肥猫的游戏
  17. 模块度(Modularity)与Fast Newman算法讲解与代码实现
  18. 移动开发的软件开发生命周期介绍(二)
  19. 总线体现在硬件上就是计算机主板,计算机考试练习题
  20. 一个前端的MONGO救赎--1

热门文章

  1. Windows:Win10恢复照片查看器
  2. CSS background(背景图片)详解
  3. 阡陌路-车行天下之汽车基础知识
  4. 看看人家那网页版聊天室系统,那叫一个优雅
  5. 为什么企业需要部署上网行为管理系统?
  6. 「Adobe国际认证」广告牌的设计也可以引人注目,但需接受这些设计建议
  7. 支持手机与PC间快传和投屏,联想推出LenovoOne
  8. Ubuntu下安装支持ssh的FTP工具 FileZilla(中文版)
  9. 台灯A级和AA级的区别是什么?护眼灯买国标AA还是A好
  10. java对中文排序_java对中文(拼音)进行排序