gpt4 book ai didi

c - 调查视频损坏的工具/技术——ffmpeg/libavcodec

转载 作者:行者123 更新时间:2023-11-28 21:43:09 38 4
gpt4 key购买 nike

在我目前的工作中,我尝试使用 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. 我不会在这里打扰你的许多其他变体

在创建我的项目时,我还遵循了以下教程:

并咨询了deprecated ffmpeg functions list

并在ubuntu上编译FFMPEG according to the official doc

并咨询了无数 StackOverflow 问题:

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

我的问题是,是否有任何明显的因素导致 FFMpeg 的编程运行与控制台运行不同(例如,不完整的完成、一些线程问题等)?就像控制台运行可以修复损坏文件的一些明显原因一样? 或者是否有合适的工具/方法来检查视频文件并找到损坏点

最佳答案

试一试:http://forum.doom9.org/showthread.php?t=123076看看你得到了什么。

关于c - 调查视频损坏的工具/技术——ffmpeg/libavcodec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582691/

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