Posts Tagged ‘audio’

Linux下的音频批量转换软件:音乐魔方Audio-convert-mod简体中文版

星期二, 八月 27th, 2013

如果你需要在 Linux 下进行音频格式转换,那么 Audio-convert-mod 是一个值得一用的工具。Audio-convert-mod 简单易用,转换音频格式文件只需三步即可搞定。另外,使用 Audio-convert-mod 可执行批量转换。目前,Audio-convert-mod 支持 MP3、OGG、FLAC、WAV、AAC/MP4/M4A、MAC/Monkey’s Audio/APE、MPC (Musepack)、WV (wavpack) 等音频格式的编码和解码。

Audio-convert-mod 的当前版本为3.46.0,提供有源码包和 RPM 包。安装 Audio-convert-mod 需要 gawk 和 file。此外,为了获得上述音频格式的编码/解码支持,需要安装一些常用的编码/解码器,比如:lame 用于 MP3 转换、vorbis-tools 用于 OGG 转换、flac 用于 FLAC 转换、mac 用于 APE 转换等等。

安装方法:

#yum install gawk
#yum install python-mutagen
#yum install gettext
#yum install intltool
#wget http://www.diffingo.com/downloads/audio-convert-mod/audio-convert-mod-3.46.0b.tar.bz2
#tar -xjvf audio-convert-mod-3.46.0b.tar.bz2
#cd audio-convert-mod-3.46.0b
#./configure --prefix=/usr
#make
#make install
#yum install lame
#yum install vorbis-tools*
#yum install musepack-tools*
#yum install flac
#yum install mac*
#yum install faac*
#yum install wavpack*
#yum install a52dec*
#yum install faad*

错误解决:
如果你在./configure这一步的时候遇到以下的提示,可以先安装atrpms和epel源来安装所需要的文件依赖包.
configure: error: The intltool scripts were not found. Please install intltool.
如果出现以上错误信息,请安装intltool

#yum install intltool

Traceback (most recent call last):
File “/usr/share/audio-convert-mod/acm-runapp.pyw”, line 56, in
from audio_convert_mod import widgets
File “/usr/share/audio-convert-mod/audio_convert_mod/widgets.py”, line 28, in

from audio_convert_mod import formats
File “/usr/share/audio-convert-mod/audio_convert_mod/formats.py”, line 42, in

import mutagen
ImportError: No module named mutagen
如果在运行audio-convert-mod的时候出现以上错误提示,请安装python-mutagen

#yum install python-mutagen

安装完整过程:

[RucLinux@localhost ~]$ su root
密码:
[root@localhost RucLinux]# cd audio-convert-mod-3.46.0b
[root@localhost audio-convert-mod-3.46.0b]# ./configure --prefix=/usr
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for a Python interpreter with version >= 2.4... python
checking for python... /usr/bin/python
checking for python version... 2.6
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.6/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.6/site-packages
checking whether NLS is requested... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... none
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.10.1
checking for XML::Parser... ok
configure: creating ./config.status
config.status: creating bin/Makefile
config.status: creating bin/audio-convert-mod
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: creating src/audio_convert_mod/Makefile
config.status: creating src/audio_convert_mod/__init__.py
config.status: creating Makefile
config.status: creating audio-convert-mod.spec
config.status: executing depfiles commands
config.status: executing po/stamp-it commands
[root@localhost audio-convert-mod-3.46.0b]# make
Making all in bin
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/bin'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/bin'
Making all in po
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/po'
file=`echo zh_CN | sed 's,.*/,,'`.gmo \
	  && rm -f $file && /usr/bin/msgfmt -o $file zh_CN.po
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/po'
Making all in src
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/src'
Making all in src/audio_convert_mod
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/src/audio_convert_mod'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/src/audio_convert_mod'
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b'
[root@localhost audio-convert-mod-3.46.0b]# make install
Making install in bin
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/bin'
make[2]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/bin'
make[2]: Nothing to be done for `install-exec-am'.
/bin/sh /home/RucLinux/audio-convert-mod-3.46.0b/install-sh -d /usr/bin
/usr/bin/install -c -m 755 audio-convert-mod /usr/bin/audio-convert-mod
make[2]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/bin'
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/bin'
Making install in po
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/po'
linguas="zh_CN "; \
	for lang in $linguas; do \
	  dir=/usr/share/locale/$lang/LC_MESSAGES; \
	  /bin/sh /home/RucLinux/audio-convert-mod-3.46.0b/install-sh -d $dir; \
	  if test -r $lang.gmo; then \
	    /usr/bin/install -c -m 644 $lang.gmo $dir/audio-convert-mod.mo; \
	    echo "installing $lang.gmo as $dir/audio-convert-mod.mo"; \
	  else \
	    /usr/bin/install -c -m 644 ./$lang.gmo $dir/audio-convert-mod.mo; \
	    echo "installing ./$lang.gmo as" \
		 "$dir/audio-convert-mod.mo"; \
	  fi; \
	  if test -r $lang.gmo.m; then \
	    /usr/bin/install -c -m 644 $lang.gmo.m $dir/audio-convert-mod.mo.m; \
	    echo "installing $lang.gmo.m as $dir/audio-convert-mod.mo.m"; \
	  else \
	    if test -r ./$lang.gmo.m ; then \
	      /usr/bin/install -c -m 644 ./$lang.gmo.m \
		$dir/audio-convert-mod.mo.m; \
	      echo "installing ./$lang.gmo.m as" \
		   "$dir/audio-convert-mod.mo.m"; \
	    else \
	      true; \
	    fi; \
	  fi; \
	done
installing zh_CN.gmo as /usr/share/locale/zh_CN/LC_MESSAGES/audio-convert-mod.mo
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/po'
Making install in src
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/src'
make[2]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/src'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/share/audio-convert-mod" || /bin/mkdir -p "/usr/share/audio-convert-mod"
 /usr/bin/install -c -m 644 BugReport.glade audio-convert-mod.glade audio-convert-mod-kde3.desktop audio-convert-mod-kde4.desktop acm-runapp.pyw '/usr/share/audio-convert-mod'
/bin/sh /home/RucLinux/audio-convert-mod-3.46.0b/install-sh -d /usr/share/applications
/usr/bin/install -c -m 644 audio-convert-mod.desktop /usr/share/applications/audio-convert-mod.desktop
make[2]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/src'
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/src'
Making install in src/audio_convert_mod
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/src/audio_convert_mod'
make[2]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b/src/audio_convert_mod'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/share/audio-convert-mod/audio_convert_mod" || /bin/mkdir -p "/usr/share/audio-convert-mod/audio_convert_mod"
 /usr/bin/install -c -m 644 acmlogger.py const.py config.py formats.py i18n.py __init__.py interface.py widgets.py '/usr/share/audio-convert-mod/audio_convert_mod'
make[2]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/src/audio_convert_mod'
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b/src/audio_convert_mod'
make[1]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b'
make[2]: Entering directory `/home/RucLinux/audio-convert-mod-3.46.0b'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b'
make[1]: Leaving directory `/home/RucLinux/audio-convert-mod-3.46.0b'
[root@localhost audio-convert-mod-3.46.0b]# 

官方安装教程:

-- DEPENDENCIES --
audio-convert-mod requires the following software to be installed:
  * python >= 2.4
  * PyGTK >= 2.10 with Glade support
  * Mutagen (often called python-mutagen)

Once audio-convert-mod is running, you may select "File > Show Format Conversion
Capabilities" to see which additional tools are required to convert audio into
your preferred format(s).

-- BUILDING --
  $ ./configure --prefix=/usr
  $ make

-- INSTALLING --
  $ make install

-- USEAGE --
To start audio-convert-mod, simply run:
  $ audio-convert-mod

If you would like to specify files to convert, add each an argument:
  $ audio-convert-mod /path/to/File1.mp3 /path/to/File2.ogg [...]

-- HELP --
If you think you've found a bug in audio-convert-mod, please send the program
log with verbose output enabled to s.adam at diffingo.com:
  $ audio-convert-mod --verbose

Please send bug reports with the verbose messages _attached_, not posted
please.

写在教程之后:
在安装之前,请先安装atrpms和epel源.把gawk python-mutagen gettext intltool这些所依赖的包装上,然后再安装audio-convert-mod.最后才是安装所需的解码器插件.
Linux安装atrpms更新源:http://www.myzhenai.com.cn/post/1227.html
Linux Centos系统安装Epel更新源:http://www.myzhenai.com/thread-15362-1-2.html
audio-convert-mod:http://www.diffingo.com/oss/audio-convert-mod/download

Linux 音频 批量 转换 软件  音乐 魔方 Audio-convert-mod 简体 中文版

Linux 下的音频批量转换软件:音乐魔方Audio-convert-mod简体中文版


Linux 音频 批量 转换软件 音乐魔方 Audio-convert-mod 简体中文版

Linux 下的音频批量转换软件:音乐魔方Audio-convert-mod简体中文版


Linux 音频 批量转换软件 音乐魔方 Audio-convert-mod 简体中文版

Linux 下的音频批量转换软件:音乐魔方Audio-convert-mod简体中文版

linux下ffmpeg的使用方法

星期日, 六月 30th, 2013

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

#ffmpeg -i file.avi output.flv

-i 表示输入文件
:现在有个视频video.avi,有个音频 audio.mp3,将其合并成output.avi
两个命令(file.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 -vnr.mp3

从flv 文件中提取声音并保存为mp3格式
-vn : 表示忽略视频 估计是video no 之类的缩写

#ffmpeg -i 人生若只如初见.flv -an r.flv

只留视频不留声音
-an : 表示 忽略 声音 估计是audio no 之类的缩写

从视频里提取图片( )

#ffmpeg -i test.avi -y -f image2 -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
#ffmpeg -f alsa -ac 2 -i hw:0,0 ut.avi
#ffmpeg -f alsa -ac 2 -i pulse

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 80×24+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 显示。

下列为较常使用的参数。
主要参数

-i 设定输入档名。
-f 设定输出格式。
-y 若输出档案已存在时则覆盖档案。
-fs 超过指定的档案大小时则结束转换。
-ss 从指定时间开始转换。
-title 设定标题。
-timestamp 设定时间戳。
-vsync 增减Frame使影音同步。

影像参数

-b 设定影像流量,默认为200Kbit/秒。( 单位请参照下方注意事项 )
-r 设定FrameRate值,默认为25。
-s 设定画面的宽与高。
-aspect 设定画面的比例。
-vn 不处理影像,于仅针对声音做处理时使用。
-vcodec 设定影像影像编解码器,未设定时则使用与输入档案相同之编解码器。

声音参数

-ab 设定每Channel (最近的SVN 版为所有Channel的总合)的流量。( 单位 请参照下方注意事项 )
-ar 设定采样率。
-ac 设定声音的Channel数。
-acodec 设定声音编解码器,未设定时与影像相同,使用与输入档案相同之编解码器。
-an 不处理声音,于仅针对影像做处理时使用。
-vol 设定音量大小,256为标准音量。(要设定成两倍音量时则输入512,依此类推。)

注意事项

以-b及ab参数设定流量时,根据使用的ffmpeg版本,须注意单位会有kbits/sec与bits/sec的不同。(可用ffmpeg -h显示说明来确认单位。)

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

以-acodec及-vcodec所指定的编解码器名称,会根据使用的ffmpeg版本而有所不同。例如使用AAC编解码器时,会有输入aac与 libfaac的情况。此外,编解码器有分为仅供解码时使用与仅供编码时使用,因此一定要利用ffmpeg -formats 确 认输入的编解码器是否能运作。

范例

将MPEG-1影片转换成MPEG-4格式之范例

#ffmpeg -i inputfile.mpg -f mp4 -acodec libfaac -vcodec mpeg4 -b 256k -ab 64k outputfile.mp4

将MP3声音转换成MPEG-4格式之范例

#ffmpeg -i inputfile.mp3 -f mp4 -acodec libaac -vn -ab 64k outputfile.mp4

将DVD的VOB档转换成VideoCD格式的MPEG-1档之范例

#ffmpeg -i inputfile.vob -f mpeg -acodec mp2 -vcodec mpeg1video -s 352x240 -b 1152k -ab 128k outputfile.mpg

将AVI影片转换成H.264格式的M4V档之范例

#ffmpeg -i inputfile.avi -f mp4 -acodec libfaac -vcodec libx264 -b 512k -ab 320k outputfile.m4v

将任何影片转换成东芝REGZA可辨识的MPEG2格式之范例

#ffmpeg -i inputfile -target ntsc-svcd -ab 128k -aspect 4:3 -s 720x480 outputfile.mpg

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

#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文件格式的声音文件。