尝试编译untrunc时出现“错误:在此范围内未声明'avcodec_open'

d3pd

我有一个电源中断的摄像机录制的视频。结果,正在制作的带有H.264编解码器的MP4文件已损坏。我想在Ubuntu 14.04.1。中修复此文件。我已经看到一种建议的方法是使用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)

您能否提出解决此错误的方法?

Behram Mistree

avcodec_open被淘汰avcodec_open2例如参见说明。通读的文档avcodec_open,看来替换的方法是转换:

avcodec_open(a,b);

avcodec_open2(a,b,NULL);

此修补程序与建议的修补程序相似,但未在untrunc库本身(此处)中进行过验证

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

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

并替换为

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++编译错误构建arduino项目:在此范围内未声明变量

来自分类Dev

C ++编译错误构建arduino项目:在此范围内未声明变量

来自分类Dev

编译器错误:C代码中“在此范围内未声明'e'”

来自分类Dev

使用gcc编译器时,在此范围内未声明“ memcpy”

来自分类Dev

Arduino平均库错误-在此范围内未声明

来自分类Dev

Qt错误:在此范围内未声明“ qApp”

来自分类Dev

错误:在此范围内未声明“长度” c ++

来自分类Dev

错误:在此范围内未声明“ varName”

来自分类Dev

错误:在此范围内未声明“ fileno”

来自分类Dev

错误:在此范围内未声明“ fileno”

来自分类Dev

错误:在此范围内未声明“ anil”

来自分类Dev

在此范围内未声明SHGetKnownFolderPath

来自分类Dev

在此范围内未声明g ++

来自分类Dev

编译gsoap-onvif解决#错误:在此范围内未声明'M_ASN1_STRING_data'

来自分类Dev

在 Arduino 中声明函数时出现“未在此范围内声明函数”错误

来自分类Dev

C ++:为什么在包含标头时出现“未在此范围内声明”错误?

来自分类Dev

在OpenCV 3中出现消息“在此范围内未声明'CV_SHAPE_ELLIPSE'”

来自分类Dev

avcodec_open2错误-542398533:“外部库中的一般错误”

来自分类Dev

(C ++)错误:在此范围内未声明“ invalid_argument”

来自分类Dev

如何修复C ++中的'arrStud在此范围内未声明'错误

来自分类Dev

如何解决错误:DallasTemperature库(Arduino)在此范围内未声明'yield'

来自分类Dev

GLFW3错误:在此范围内未声明'glfwGetWin32Window'

来自分类Dev

在此范围内未声明stof函数c ++

来自分类Dev

glClearBufferfv-在此范围内未声明?

来自分类Dev

Qt QOpenGLFunctions在此范围内未声明

来自分类Dev

OpenCV:在此范围内未声明“ SiftDescriptorExtractor”

来自分类Dev

C ++-在此范围内未声明stoi()

来自分类Dev

cygwin:在此范围内未声明“ fmemopen”

来自分类Dev

在此范围内未声明模板参数

Related 相关文章

  1. 1

    C ++编译错误构建arduino项目:在此范围内未声明变量

  2. 2

    C ++编译错误构建arduino项目:在此范围内未声明变量

  3. 3

    编译器错误:C代码中“在此范围内未声明'e'”

  4. 4

    使用gcc编译器时,在此范围内未声明“ memcpy”

  5. 5

    Arduino平均库错误-在此范围内未声明

  6. 6

    Qt错误:在此范围内未声明“ qApp”

  7. 7

    错误:在此范围内未声明“长度” c ++

  8. 8

    错误:在此范围内未声明“ varName”

  9. 9

    错误:在此范围内未声明“ fileno”

  10. 10

    错误:在此范围内未声明“ fileno”

  11. 11

    错误:在此范围内未声明“ anil”

  12. 12

    在此范围内未声明SHGetKnownFolderPath

  13. 13

    在此范围内未声明g ++

  14. 14

    编译gsoap-onvif解决#错误:在此范围内未声明'M_ASN1_STRING_data'

  15. 15

    在 Arduino 中声明函数时出现“未在此范围内声明函数”错误

  16. 16

    C ++:为什么在包含标头时出现“未在此范围内声明”错误?

  17. 17

    在OpenCV 3中出现消息“在此范围内未声明'CV_SHAPE_ELLIPSE'”

  18. 18

    avcodec_open2错误-542398533:“外部库中的一般错误”

  19. 19

    (C ++)错误:在此范围内未声明“ invalid_argument”

  20. 20

    如何修复C ++中的'arrStud在此范围内未声明'错误

  21. 21

    如何解决错误:DallasTemperature库(Arduino)在此范围内未声明'yield'

  22. 22

    GLFW3错误:在此范围内未声明'glfwGetWin32Window'

  23. 23

    在此范围内未声明stof函数c ++

  24. 24

    glClearBufferfv-在此范围内未声明?

  25. 25

    Qt QOpenGLFunctions在此范围内未声明

  26. 26

    OpenCV:在此范围内未声明“ SiftDescriptorExtractor”

  27. 27

    C ++-在此范围内未声明stoi()

  28. 28

    cygwin:在此范围内未声明“ fmemopen”

  29. 29

    在此范围内未声明模板参数

热门标签

归档