使用ffmpeg libfaac进行转码可缩短音频持续时间

使用ffmpeg libfaac进行转码可缩短音频持续时间,ffmpeg,transcode,libfaac,Ffmpeg,Transcode,Libfaac,我必须对mpegts文件进行转码:input.ts(H.264和AAC) 因此,我使用以下命令行: ffmpeg-y-i input.ts-acodec libfaac-vcodec copy out.ts 但是我发现output.ts的音频持续时间比input.ts的短 如果我进行以下迭代,输出的音频将越来越短 ffmpeg -y -i out.ts -acodec libfaac -vcodec copy out-iter1.ts ffmpeg -y -i out-iter1.ts -aco

我必须对mpegts文件进行转码:input.ts(H.264和AAC) 因此,我使用以下命令行:
ffmpeg-y-i input.ts-acodec libfaac-vcodec copy out.ts

但是我发现output.ts的音频持续时间比input.ts的短

如果我进行以下迭代,输出的音频将越来越短

ffmpeg -y -i out.ts -acodec libfaac -vcodec copy out-iter1.ts
ffmpeg -y -i out-iter1.ts -acodec libfaac -vcodec copy out-iter2.ts
ffmpeg -y -i out-iter2.ts -acodec libfaac -vcodec copy out-iter3.ts
ffmpeg -y -i out-iter3.ts -acodec libfaac -vcodec copy out-iter4.ts
ffmpeg -y -i out-iter4.ts -acodec libfaac -vcodec copy out-iter5.ts
我的ffmpeg版本是0.6.6。libfaac的版本是1.28

ts的音频持续时间为10.432秒。out-iter5.ts的音频持续时间为10.56秒

我还尝试了0.11版的ffmpeg。 它使音频比原始输入更长

所以我的问题是:如何确保输出的音频持续时间与输入的音频持续时间相同。 既然libfaac会使音频变短,我该如何补偿呢?
(由于某些原因,我不能直接使用-acodec copy。)有什么建议吗?

由于技术问题,您不能使用
-acodec copy
,还是有其他原因?我这样问是因为这通常是保持音频不变的最佳方式。生成的ts文件用于苹果的Http直播。如果我直接使用-acodec copy,那些ts文件的一些音频和视频就不同步了。但是如果我使用ffmpeg进行转码,除了音频的持续时间较短之外,一切都正常。我绕过了av_decode_audio3和encode auido函数,将输入数据包的数据复制到输出数据包。现在音频的持续时间不变。但我希望知道为什么没有转码的视频在苹果的Http直播中不能很好地工作。是ts头的问题吗?谢谢