2016-11-05 126 views
0

我試圖做一個簡單的影音播放器,並在某些情況下,我得到如下正確的值:libav給音頻持續時間爲負

checking /media/timecapsule/Music/02 Baawre.mp3 
[mp3 @ 0x7f0698005660] Skipping 0 bytes of junk at 2102699. 
dur is 4396400640 
duration is 311 

然而,在其他地方,我得到否定的持續時間:

checking /media/timecapsule/Music/01 Just Chill.mp3 
[mp3 @ 0x7f0694005f20] Skipping 0 bytes of junk at 1318922. 
dur is -9223372036854775808 
duration is -653583619391 

我不確定是什麼原因導致持續時間僅在某些音頻文件中以負值結束。任何想法,我可能是錯誤的,歡迎!

來源這裏https://github.com/heroic/musika/blob/master/player/library.c

回答

0

代碼我建議兩兩件事: 1.確保失敗文件未損壞,即可以使用ffmpeg的命令行工具來轉儲細節。 2.如果條件爲避免操作順序並確保打開成功,則將其分解爲2。 如果(!(avformat_open_input(&容器,名稱,NULL,NULL) & avformat_find_stream_info(容器,NULL)< 0)){

您也可以使用av_dump_format以確保其標題是正確的。見恩 - https://www.ffmpeg.org/doxygen/2.8/avio_reading_8c-example.html#a24

科坦

+0

美妙之處在於,如果我使用mpg123的,有與任何文件沒有任何問題! – Amit

相關問題