gpt4 book ai didi

c++ - "error: ' avcodec_open ' was not declared in this scope"尝试编译 untrunc

转载 作者:可可西里 更新时间:2023-11-01 18:29:25 25 4
gpt4 key购买 nike

我有一个断电的摄像机录制的视频。因此,它制作的带有 H.264 编解码器的 MP4 文件已损坏。我想在 Ubuntu 14.04.1 中修复这个文件。我见过的一种方法 suggested就是用untrunc .我正在尝试编译它,但遇到了一个我不知道如何解决的错误。到目前为止我所做的如下:

sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev
git clone https://github.com/ponchio/untrunc.git
cd untrunc/
g++ -o untrunc file.cpp main.cpp track.cpp atom.cpp mp4.cpp -L/usr/local/lib -lavformat -lavcodec -lavutil

在尝试编译时,出现以下错误:

track.cpp: In member function 'void Track::parse(Atom*, Atom*)':
track.cpp:217:47: error: 'avcodec_open' was not declared in this scope
if(avcodec_open(codec.context, codec.codec)<0)

您能建议一种解决此错误的方法吗?

最佳答案

avcodec_open 已弃用 avcodec_open2。参见例如 this笔记。阅读 avcodec_open 的文档,似乎进行替换的方法是转换:

avcodec_open(a,b);

avcodec_open2(a,b,NULL);

此修复类似于建议的修复,但未在 untrunc 库本身中验证,here .

我尝试验证修复是否有效。实际上,它是 track.cpp 中的单行修改。采取:

 if(avcodec_open(codec.context, codec.codec)<0)

并将其替换为

 if(avcodec_open2(codec.context, codec.codec, NULL)<0)

(在提交 3c708a 时,此更改位于第 218 行)。注意:我只验证了代码是否已编译,而不是它确实按照预期的方式工作(我没有损坏的 m4v 可以测试)。让我知道它是否有效,或者如果您遇到任何其他问题。

关于c++ - "error: ' avcodec_open ' was not declared in this scope"尝试编译 untrunc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25171778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com