ffmpegresize“无法找到编解码器参数”
我是ubuntu的新手,需要你的帮助:(32bit ubuntu 12.10)我的命令:
ffmpeg -i ../output_images/particles%04d.png -r 30 -b 30000k final_movie.avi
适用于我的800×800 * .png图片,但不适用于512×512 * .png。 在那里我收到以下消息:
[image2 @ 0x938a100] Could not find codec parameters (Video: png, 512x512)
在校园机器上,它可以使用相同的代码。 我试着做一个resize-command:
for p in *.tga; do convert -resize 800x800 $p $p; done
随着这个添加,它的工作原理,但我最终和800×800电影。
我已经安装了以下软件包:
过剩:
sudo apt-get install freeglut3-dev
ffmpeg的:
sudo apt-get install ffmpeg
有一个“未找到curl命令”错误。 我修复它:
sudo apt-get install curl
还有另一个“转换:命令未找到”,我修复它:
sudo apt-get install imagemagick
知道缺少什么吗?
一种误导性的情况
首先,来自Ubuntu存储库的所谓“ffmpeg”并非真正来自FFmpeg项目,而是来自fork的假版本。 这是一个令人困惑的情况。 看到:
- 谁能告诉我ffmpeg,libav和avconv之间的区别和关系?
- FFmpeg / Libav情况
其次,这个虚假的“ffmpeg”(和avconv)是非常错误的。 FFmpeg开发非常活跃,使用最新版本的真实ffmpeg很可能会解决这个问题。
获得真正的ffmpeg
你有几个选择:
- 在Ubuntu上编译ffmpeg – 可自定义,提供最新的代码,但你必须编译(不是很难,不应该花太长时间)。 非侵入系统。
- 使用静态构建 – 最容易使用但不可自定义; 也是非侵入性的。
- 使用Jon Severinsson的FFmpeg PPA – 易于启用和安装,但旧的,不可定制
如上所述,每个都有它们的优点和缺点。
使用静态构建
您只需下载存档,解压缩并执行二进制文件即可。 无需编译或安装:
wget http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.2013-06-19.tar.gz tar xzvf ffmpeg.static.32bit.2013-03-19.tar.gz
现在你可以使用它了。 您可以导航到包含ffmpeg
的目录,然后运行(注意前面的./
):
./ffmpeg -i input ... output
……或提供完整的路径,如:
/home/andy/ffmpeg/ffmpeg -i input ... output
选择$PATH
如果您在使用ffmpeg
命令时想要真正的ffmpeg
而不必使用./
或必须提供二进制文件的完整路径,那么将ffmpeg二进制文件放在您家中的bin
目录中:
mkdir ~/bin mv ffmpeg ~/bin hash -r
现在你可以运行ffmpeg
,你就可以准备编码了。 如果你想使用除~/bin
之外的其他目录,那么你必须将目录添加到$PATH
,如如何将目录添加到我的路径中所示?
检查间谍
现在使用ffmpeg
命令应该显示类似的东西(注意“FFmpeg developers”短语):
$ ffmpeg ffmpeg version N-54152-g730e07f Copyright (c) 2000-2013 the FFmpeg developers
如果它显示以下内容,那么您将知道您被诅咒并且假版本仍在使用(请注意“Libav developers”短语):
$ ffmpeg ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
帮助我的是将图像转换格式从png更改为jpeg。 所以makemovie.sh必须看起来像这样:
#!/bin/bash cd output_images for F in $(ls *.tga); do convert -quality 100 $F ${F%.tga}.jpg; #convert -quality 100 $F ${F%.tga}.png; rm $F; echo done with converting $F; done cd .. THISPATH=$(pwd) export PATH=$PATH:${THISPATH}/ffmpeg/ffmpeg-install/bin/ echo Making the movie now... cd final_movie rm final_movie.avi ffmpeg -i ../output_images/particles%04d.jpg -r 30 -b 30000k final_movie.avi cd ..