ffmpeg 调整大小“无法找到编解码器参数”

ffmpeg 调整大小“无法找到编解码器参数”

我是 ubuntu 新手,需要你的帮助:(32 位 ubuntu 12.10)我的命令:

ffmpeg -i ../output_images/particles%04d.png -r 30 -b 30000k final_movie.avi

它可以正常处理我的 800x800 *.png 图片,但不能处理 512x512 *.png。我收到以下消息:

[image2 @ 0x938a100] Could not find codec parameters (Video: png, 512x512)

在校园机器上,它使用相同的代码对两者起作用。我尝试执行调整大小命令:

for p in *.tga; do convert -resize 800x800 $p $p; done

添加这个之后,它就可以工作了,但是最后我得到的是 800x800 的电影。


我已经安装了以下软件包:

过剩:

sudo apt-get install freeglut3-dev

ffmpeg:

sudo apt-get install ffmpeg

出现“未找到 curl 命令”错误。我使用以下命令修复了此问题:

sudo apt-get install curl

还有另一个“转换:未找到命令”,我使用以下命令修复了它:

sudo apt-get install imagemagick

知道缺少了什么吗?

答案1

误导性的情况

首先,Ubuntu 存储库中所谓的“ffmpeg”并非真正来自 FFmpeg 项目的 ffmpeg,而是来自分支的假版本。这是一个令人困惑的情况。请参阅:

其次,这个假的“ffmpeg”(和 avconv)有很多错误。FFmpeg 开发非常活跃,使用最新版本的真实 ffmpeg 很可能可以解决这个问题。

获得真正的ffmpeg

您有多种选择:

如上所述,每种方法都有其优点和缺点。

使用静态构建

您只需下载档案、解压并执行二进制文件即可。无需编译或安装:

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 开发人员”短语):

$ ffmpeg 
ffmpeg version N-54152-g730e07f Copyright (c) 2000-2013 the FFmpeg developers

如果显示以下内容,那么您就会知道自己被诅咒了,并且仍然在使用假版本(请注意“Libav 开发人员”一词):

$ ffmpeg
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers

答案2

对我有帮助的是将图像转换格式从 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 ..

相关内容