我正在尝试使用FFMpeg对我的输入视频文件进行一些处理,然后将其提供给仿真器软件(打包软件)以进行进一步处理。仿真器基本上是一个分组化软件。但无论它是什么,附加工作的原始视频文件。文件的创建者说他用过 bento4
用于创建文件的工具。与FFmpeg的那个工具有什么不同?
问题是模拟器可以读取原始视频文件,但是当我只是使用命令时 ffmpeg -i input.video -c copy output.mp4
虽然它本质上应该复制所有配置,但模拟器无法读取和处理新文件。
这是原件的副本 .mp4
在模拟器中工作正常的文件。
我用了 mediainfo
工具来比较两个文件的细节,并注意到所有视频编解码器相关的配置是相同的,标题大小有一些差异可能导致问题。有没有办法强制FFmpeg保留标题信息(除了编解码器)?或者可能还有其他问题?在任何情况下,输出视频都不完全相同。
更新: 我还在努力解决这个问题。我查看了模拟器代码,然后解析了 MOOV
和片段标题的信息。使用MP4资源管理器软件,我注意到我生成的 .mp4
文件,为所有人 moof.traf.trun
,示例持续时间为0,但在Track Fragment Header框中,它设置了 default_sample_duration
在工作文件中,没有 default_sample_duration
,每个样本的持续时间大小为512.我想这可能是问题所在。现在有什么方法可以让它像原创一样?
loading binary file\ pthread_join(thread[1], NULL);