请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Segmentation fault

使用老师的代码在本地调试,会在这句下面代码出现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。

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

正在回答 回答被采纳积分+3

2回答

提问者 慕尼黑2215515 2025-04-14 22:07:06

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

0 回复 有任何疑惑可以回复我~
  • 李超 #1
    OK👍👍👍
    回复 有任何疑惑可以回复我~ 2025-04-15 22:18:42
李超 2025-04-14 19:43:39

你用的我上传的代码吗?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号