我试图对用户在我的服务器上传的视频文件进行编码。 我将文件解释为流,通过http协议在我的服务器上传入,并使用ffmpeg进行实时文件编码,同时执行上载过程。
如果源文件格式为.avi
,我的编码结果会成功,但会出现.mp4
格式错误:
---------------------
[buffer @ 0000000000308380] Unable to parse option value "-1" as pixel format
Last message repeated 1 times
[buffer @ 0000000000308380] Error setting option pix_fmt to value -1.
---------------------
我认为这可能是因为.mp4在文件末尾包含"moov atom"
个数据。
我是这么认为的,因为当我在编码之前通过"-movflags faststart"
命令处理文件时,我也有成功的结果。
这是我现在使用的命令:
ffmpeg -i http://myhost.com/app/video/video2.mp4 -f mp4 -vcodec libx264 -b:v 800K -acodec libvo_aacenc -b:a 128K -ar 44100 -ac 2 -y c:/watch-and-get/video/video5.mp4
我可以解决此问题并将多种视频格式编码为流而无需任何多余步骤吗?
答案 0 :(得分:0)
您正在运行旧版本的ffmpeg。这个问题已得到解决。
-pix_fmt
是像素格式,它的值应该是一个整数。(ffmpeg以某种方式将此值取为-1,我不知道为什么。因此你得到了这个错误。但更新会解决这个问题)
额外信息:运行ffmpeg -pix_fmts
以查看所有可用的像素格式。
下载最新版本。 我建议从二进制文件安装最新版本,因为它更简单。我回答了同样的here