我正在尝试创建一个简单的av播放器,在某些情况下,我正确地获得了值,如下所示:
leaked pooled object
然而,在其他地方,我的持续时间为负:
checking /media/timecapsule/Music/02 Baawre.mp3
[mp3 @ 0x7f0698005660] Skipping 0 bytes of junk at 2102699.
dur is 4396400640
duration is 311
我不确定是什么导致持续时间仅在某些音频文件中结束为负数。欢迎任何关于我可能出错的想法!
源代码https://github.com/heroic/musika/blob/master/player/library.c
答案 0 :(得分:0)
我建议两件事: 1.确保失败的文件没有损坏,即您可以使用ffmpeg命令行工具转储详细信息。 2.如果条件避免操作顺序并确保打开成功,则将其分解为2。 if(!(avformat_open_input(& container,name,NULL,NULL)< 0&& avformat_find_stream_info(container,NULL)< 0)){
此外,您可以使用av_dump_format确保其标头正确。见前 - https://www.ffmpeg.org/doxygen/2.8/avio_reading_8c-example.html#a24
科坦