如何使用ffmpeg将猿转换为mp3?


10

我正在尝试在ubuntu 13.10上使用ffmpeg将AP3转换为MP3?

我安装了ffmpeg,但是使用它时出现此错误。请告诉我该如何解决?

$ ffmpeg -i CD1_Age_0-3_Baby.ape CD1_Age_0-3_Baby.mp3
ffmpeg version 0.8.9-6:0.8.9-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
  built on Nov  9 2013 19:15:22 with gcc 4.8.1
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, ape, from 'CD1_Age_0-3_Baby.ape':
  Metadata:
    Album           : MOZART EFFECT I - ENLIGHTMENT
    Title           : C:\[APE SET] Ī����ЧӦ-�������ǵ����� 4CDS\CDImage01
    Genre           : Classical
    Year            : 2002
    Comment         : Exact Audio Copy
  Duration: 01:09:17.75, start: 0.000000, bitrate: 656 kb/s
    Stream #0.0: Audio: ape, 44100 Hz, stereo, s16
Output #0, mp3, to 'CD1_Age_0-3_Baby.mp3':
    Stream #0.0: Audio: [0][0][0][0] / 0x0000, 44100 Hz, stereo, s16, 200 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Encoder (codec id 86017) not found for output stream #0.0

Answers:


9

首先,请确保您已libavcodec-extra-53安装用于mp3编码的软件包。

sudo apt-get install libavcodec-extra-53  

尝试使用ffmpeg将.ape文件转换为.mp3,您将收到以下消息:

*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release.   
Please use avconv instead.

这是您在问题中遇到的相同错误消息。因此请avconv改用。avconv程序由Ubuntu软件中心的libav-tools软件包提供。avconv与ffmpeg一样,是从终端运行的。

本示例对output.mp3文件使用256kbps比特率,对元数据标签使用id3v2_version 3。首先使用cd命令将目录更改为要转换的input.ape文件所在的目录。然后运行命令:

avconv -i 'input.ape' -id3v2_version 3 -codec:a libmp3lame -b 256k 'output.mp3'

注意:命令:ffmpeg -i '10 Make Peace.ape' -acodec libmp3lame -b 256k -id3v2_version 3 '10 Make Peace.mp3'还将使用ffmpeg转换为mp3,但您会收到THIS PROGRAM IS DEPRECATED错误消息。ffmpeg软件包在Ubuntu 13.10和更早版本中仍然可用。

在Ubuntu 14.04中,Libav编解码器库(附加编解码器)软件包(libavcodec-extra-53)已更新为libavcodec-extra-54。在Ubuntu 14.10和15.04中,Libav编解码器库(其他编解码器)软件包已更新为libavcodec-extra-56。

Ubuntu 15.10及更高版本的更新

在Ubuntu 15.10和16.04中,Libav编解码器库(其他编解码器)软件包已更新为libavcodec-ffmpeg-extra56。

在Ubuntu 16.10、17.04、17.10和18.04中,Libav编解码器库(附加编解码器)软件包已更新为libavcodec-extra57。

在Ubuntu 18.10和19.04中,Libav编解码器库(其他编解码器)软件包已更新为libavcodec-extra58。


2
请注意,“已弃用”消息ffmpeg来自Libav(FFmpeg的一个分支),而不是ffmpegFFmpeg。
llogan

1
底部没有错误消息:Encoder (codec id 86017) not found for output stream #0.0。使用其他名称运行同一程序并不能解决任何实际问题,它只是抑制了Libav的怪癖,但-codec:a libmp3lame也许可以解决此问题。
LiveWireBT

5

您可以使用以下六个主要选项来编码为MP3 ffmpeg

  • 避免强加于 Ubuntu用户的误导性Libav混乱,只需下载,提取和执行Linuxffmpeg的最新版本即可。放入~/bin,然后重新登录。现在,当您运行ffmpeg它时,它将使用此新版本。这是最简单的选择

  • 遵循循序渐进的指南,ffmpeg使用所需的任何编解码器和功能来编译真实代码

  • ffmpegUbuntu Multimedia for Trusty PPA安装(适用于14.04用户)。

  • 安装该libavcodec-extra-*软件包,以通过libmp3lame在越野车avconv或the 脚的,旧的,假的中启用MP3编码ffmpeg

  • 传递到lame并使用它进行编码:ffmpeg -i input -f wav - | lame - output.mp3

  • 升级Ubuntu并使用ffmpeg仓库中的软件包。ffmpegFFmpeg 的真实版本在Vivid 15.04中返回了Ubuntu。


2
以我的经验,大多数视频转换问题都是通过安装real解决的ffmpeg。我正在使用静态版本---没有安装,没有大惊小怪,解压缩和运行---在此答案的链接中提供了至少两年(有时更新),并且完全没有问题。
Rmano

1

这是另一个可以帮助人们的脚本。您需要做的是将其复制到要转换的猿文件的根文件夹中。

#!/bin/bash

set -e

# Script Name:  convert_ape2mp3.sh
#
# Description:  The script will recursively find all *.ape files
#   and then convert them to mp3 files.
#   This script has been tested on Ubuntu 14.04 
#   
# Dependencies: (you will need to install the following library prior
#                to running this script.)
#     sudo apt-get install libav-tools
# avconv -i '01_Tori Amos_Beauty Queen - Horses.ape' -id3v2_version 3 -codec:a libmp3lame -b 320k '01_Tori Amos_Beauty Queen - Horses.mp3'

# Optional:  After conversion is complete if you want you can 
#   remove all the ape files.
#   find . -type f -name "*.ape" 
#   find . -type f -name "*.ape" -exec rm {} \;

find . -name "*.ape" -print0 | while IFS= read -r -d '' FILE; do
    echo "### Converting $FILE..."
    echo avconv -i "$FILE" -id3v2_version 3 -codec:a libmp3lame -b 320k "${FILE%.*}.mp3";
    avconv -i "$FILE" -id3v2_version 3 -codec:a libmp3lame -b 320k "${FILE%.*}.mp3";

done

1

libav_toolslibmp3lame安装了ape文件所在的目录中,输入terminal:

$ for f in *.ape; do
      avconv -i "$f" -id3v2_version 3 -codec:a libmp3lame -ab 320k "${f%.ape}.mp3"
done

这样,目录中的所有ape文件都将转换为mp3立体声320kb,并且尊重ape文件中的标签。


1
请检查您的代码块。毫无意义(至少对我而言)。
Cbhihe

该代码块非常合理。for语句可防止终端在您按Enter键后执行命令。完成完成了循环,而中间的两行在循环内。
Zzzach ... 2015年

@Zzzach ...:非常感谢。f!现在,终于,我知道bash了!;-)更严重的是,请查看该代码块的预编辑格式...
Cbhihe 2015年

0

下面的脚本将从执行find命令的路径开始将所有wma文件递归转换为mp3。旧的WMA文件将被删除!!!

脚本:

#!/bin/bash
#Command to call wma2mp3 script
#find . -name "*wma" -exec ~/wma2mp3 {} \;

ffmpeg -sameq -i "$1" "${1%.*}.mp3";
rm -f "$1";

欢迎来到AskUbuntu!您可以编辑帖子以使脚本更易于阅读。(在每行前使用>或4个空格)
没时间
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.