use*_*637 6 command-line bash ffmpeg
我在使用当前版本的 ffmpeg 时遇到问题,它以我的客户不支持的格式将 .mp3 转码为 .wavs。
如何安装这个版本?
ffmpeg version 0.7.3-4:0.7.3-0ubuntu0.11.10.1, Copyright (c) 2000-2011 the Libav developers
built on Jan 4 2012 16:08:51 with gcc 4.6.1
Run Code Online (Sandbox Code Playgroud)
编辑
我试图解决的问题是将 .mp3 转码为 .wav。我们的客户有一个识别服务,可以从 .wav 中确定歌曲。当我传递 ffmpeg 生成的 .wav 时
exec ("ffmpeg -ss $start -t $duration -i $shellArgSongPath -f wav -ar 44100 somefile.wav");
Run Code Online (Sandbox Code Playgroud)
我收到“不支持音频格式”的消息
我的猜测是用于从 .mp3 转码到 .wav 的默认编解码器已更改。有人知道以前的版本是什么吗?
编辑
(Reading database ... 31284 files and directories currently installed.)
Preparing to replace ffmpeg 4:0.7.3-0ubuntu0.11.10.1 (using ffmpeg_0.7.3-0ubuntu0.11.10.1_amd64.deb) ...
Unpacking replacement ffmpeg ...
Replaced by files in installed package libav-tools ...
dpkg: dependency problems prevent configuration of ffmpeg:
ffmpeg depends on libavcodec53 (<< 4:0.7.3-99) | libavcodec-extra-53 (<< 4:0.7.3.99); however:
Version of libavcodec53 on system is 4:0.8.1-0ubuntu1.
Package libavcodec-extra-53 is not installed.
ffmpeg depends on libavdevice53 (<< 4:0.7.3-99) | libavdevice-extra-53 (<< 4:0.7.3.99); however:
Version of libavdevice53 on system is 4:0.8.1-0ubuntu1.
Package libavdevice-extra-53 is not installed.
ffmpeg depends on libavfilter2 (<< 4:0.7.3-99) | libavfilter-extra-2 (<< 4:0.7.3.99); however:
Version of libavfilter2 on system is 4:0.8.1-0ubuntu1.
Package libavfilter-extra-2 is not installed.
ffmpeg depends on libavformat53 (<< 4:0.7.3-99) | libavformat-extra-53 (<< 4:0.7.3.99); however:
Version of libavformat53 on system is 4:0.8.1-0ubuntu1.
Package libavformat-extra-53 is not installed.
ffmpeg depends on libavutil51 (<< 4:0.7.3-99) | libavutil-extra-51 (<< 4:0.7.3.99); however:
Version of libavutil51 on system is 4:0.8.1-0ubuntu1.
Package libavutil-extra-51 is not installed.
ffmpeg depends on libpostproc52 (<< 4:0.7.3-99) | libpostproc-extra-52 (<< 4:0.7.3.99); however:
Version of libpostproc52 on system is 4:0.8.1-0ubuntu1.
Package libpostproc-extra-52 is not installed.
ffmpeg depends on libswscale2 (<< 4:0.7.3-99) | libswscale-extra-2 (<< 4:0.7.3.99); however:
Version of libswscale2 on system is 4:0.8.1-0ubuntu1.
Package libswscale-extra-2 is not installed.
libav-tools (4:0.8.1-0ubuntu1) breaks ffmpeg (<< 4:0.8~) and is installed.
Version of ffmpeg to be configured is 4:0.7.3-0ubuntu0.11.10.1.
dpkg: error processing ffmpeg (--install):
dependency problems - leaving unconfigured
Processing triggers for man-db ...
Errors were encountered while processing:
ffmpeg
Run Code Online (Sandbox Code Playgroud)
当我ffmpeg从生成格式正确的 .wav 的服务器运行命令时编辑输出
ffmpeg version 0.7.3-4:0.7.3-0ubuntu0.11.10.1, Copyright (c) 2000-2011 the Libav developers
built on Jan 4 2012 16:08:51 with gcc 4.6.1
configuration: --extra-version='4:0.7.3-0ubuntu0.11.10.1' --arch=amd64 --prefix=/usr --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
libavutil 51. 7. 0 / 51. 7. 0
libavcodec 53. 6. 0 / 53. 6. 0
libavformat 53. 3. 0 / 53. 3. 0
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 4. 0 / 2. 4. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 52. 0. 0 / 52. 0. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
Run Code Online (Sandbox Code Playgroud)
当我从ffmpeg生成格式错误的 .wav 的服务器运行命令时的输出
ffmpeg version 0.8.1-4:0.8.1-0ubuntu1, Copyright (c) 2000-2011 the Libav developers
built on Mar 22 2012 05:09:06 with gcc 4.6.3
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
Run Code Online (Sandbox Code Playgroud)
根据我们的评论风暴,我假设 libav 中存在回归,或者您的应用程序中存在错误,给您提供“不支持音频格式”消息。您可以尝试编译 ffmpeg(来自 FFmpeg 项目,而不是 libav)。根据我的经验,失败ffmpeg时通常会起作用。avconv这将创建 ffmpeg 的“本地”版本,因此它不会干扰存储库中的 ffmpeg/avconv:
sudo apt-get install build-essential yasm
cd
wget -O ffmpeg.tar.gz "http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=HEAD;sf=tgz"
tar xzvf ffmpeg.tar.gz
cd ffmpeg-HEAD-*
./configure
make
Run Code Online (Sandbox Code Playgroud)
现在尝试 ffmpeg。请注意./前面的内容ffmpeg,此示例假设输入文件位于您的主目录中。输出将放置在您的主目录中:
cd ~/ffmpeg-HEAD-*
./ffmpeg -i ~/input.mp3 ~/output.wav
Run Code Online (Sandbox Code Playgroud)
如果这有效,您可以考虑实际替换 libav 并安装 ffmpeg:How To Compile FFmpeg and x264 on Ubuntu。