gpt4 book ai didi

gcc - libav 将音频持续时间设为负数

转载 作者:行者123 更新时间:2023-12-04 23:27:12 27 4
gpt4 key购买 nike

我正在尝试制作一个简单的 av 播放器,在某些情况下,我可以正确获取如下值:

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

最佳答案

我建议两件事:
1. 确保失败的文件没有损坏,即您可以使用 ffmpeg 命令行工具转储详细信息。
2. 把这个分成2个if条件来避免操作顺序,确保打开成功。
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

克坦

关于gcc - libav 将音频持续时间设为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40437920/

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