用于调查视频损坏的工具/技术 - ffmpeg / libavcodec

时间:2013-07-10 23:32:52

标签: c ubuntu video ffmpeg h.264

在我目前的工作中,我正在尝试使用FFMPEG的C库将一些图像编码为h264视频。生成的视频在VLC中播放正常,但没有预览图像。该视频可以在ubuntu上的VLC和Mplayer中播放,但不能在Mac或PC上播放(实际上,它会导致Mac上出现“VTDecoderXPCService意外退出”错误)。

如果我使用命令行通过FFMPEG运行生成的文件,生成的文件会有一个预览图像,并且可以在任何地方正确播放。

显然,我从程序中获取的文件在某些​​奇怪的地方已损坏,但在编译期间我没有任何输出或运行以指示在哪里。我目前无法共享我的代码(工作代码尚未开源:-(),但我尝试了很多方法:

  1. 仅编写标题和预告片数据(av_write_trailer)且无框架
  2. 仅编写框架减去预告片(使用avcodec_encode_video2和av_write_frame)
  3. 调整time_base和frame pts值以仅编码每秒一帧
  4. 删除所有可变帧速率代码
  5. 我不打扰你的许多其他变种
  6. 在创建项目时,我还遵循了以下教程:

    并咨询了deprecated ffmpeg functions list

    在ubuntu according to the official doc

    上编译了FFMPEG

    并咨询了许多StackOverflow问题:

    但是程序的每次运行都会遇到完全相同的问题。

    我的问题是,是否有任何明显的因素导致FFMpeg的程序化运行与控制台运行不同(例如,不完整的终结,某些线程问题等)?像一些明显的理由,控制台运行可以修复损坏的文件? 或者是否有适当的工具/方法来检查视频文件并找到腐败点

1 个答案:

答案 0 :(得分:1)

给它一个贯穿:http://forum.doom9.org/showthread.php?t=123076并看看你得到了什么。