Segmentation fault

来源:5-14 调试extra_audio程序

慕尼黑2215515

2025-04-14

使用老师的代码在本地调试,会在这句下面代码出现Segmentation fault。
avcodec_parameters_copy(outStream->codecpar, inStream->codecpar);

其中,使用av_dump_format输出的视频信息如下,视频可正常播放,并且av_find_best_stream获取到的idx的值为1,说明inStream获取到了正确的音频流。
但是inStream->codecpar获取不到原视频的信息,导致一调用inStream->codecpar就会出现Segmentation fault。

Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp41isom
    creation_time   : 2025-03-09T12:28:10.000000Z
    artist          : Microsoft Game DVR
    title           : Monster Hunter Wilds
  Duration: N/A, bitrate: N/A
  Stream #0:0[0x1](und), 0, 1/30000: Video: h264, 1 reference frame (avc1 / 0x31637661), none, 2560x1440, 0/1, 17576 kb/s, 27.78 fps, 30k tbn (default)
    Metadata:
      creation_time   : 2025-03-09T12:28:10.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : AVC Coding
  Stream #0:1[0x2](und), 0, 1/48000: Audio: aac (mp4a / 0x6134706D), 48000 Hz, 2 channels, 128 kb/s (default)
    Metadata:
      creation_time   : 2025-03-09T12:28:10.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

尝试了很多方法

  1. 更换视频文件
  2. avformat_open_input(&pFmtCtx, src, NULL, NULL);之后使用avformat_find_stream_info(pFmtCtx, NULL);
  3. avformat_find_stream_info设置超时时间
    这些方法都无法解决问题,inStream->codecpar始终获取不到原视频的信息,导致会在调用avcodec_parameters_copy(outStream->codecpar, inStream->codecpar);时出现Segmentation fault。

希望老师能帮忙看看是什么原因
图片描述

写回答

2回答

慕尼黑2215515

提问者

2025-04-14

重新拉取编译了最新的ffmpeg,问题已解决

0
1
李超
OK👍👍👍
2025-04-15
共1条回复

李超

2025-04-14

你用的我上传的代码吗?

0
1
慕尼黑2215515
是的
2025-04-14
共1条回复

经典再升级-FFmpeg5.0核心技术精讲,打造音视频播放器

学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师

2726 学习 · 814 问题

查看课程