2016년 11월 28일 오늘 기준,
https://github.com/FFmpeg/FFmpeg 에서 ffmpeg소스를 다운받아 컴파일하고
ffserver을 사용하려고 하면 오류가 난다.
예를들어 http://127.0.0.1/status.html등 ffserver.conf에서 Stream Url으로 지정한 곳에 들어가면 그 즉시
Segmentation fault가 뜨며 ffserver가 죽어버린다...
status page에 들어간다고 하면...
ffserver.c의 compute_status함수에 진입하고
ffserver.c:1993 AVCodec *codec = avcodec_find_encoder(st->codecpar->codec_id);
에서 문제가 발생한다.
st->codecpar가 NULL이기 때문인데, AVStream구조체에서 codec는 deprecated된 상태이고,
이 대신 codecpar을 쓸 것을 권장하고 있다.
디버깅을 해 보면 st->codec는 정상적으로 값이 들어가 있는데 codecpar은 NULL이다...
codec을 설정해주는 곳은 ffserver_config.c에서 add_codec함수인데
static void add_codec(FFServerStream *stream, AVCodecContext *av, FFServerConfig *config)
ffserver_config.c:322의 st->codec = av; 이 부분! codec는 설정하는데 codecpar은 처리하지 않는다...
아무래도 codec을 codecpar으로 변경하는 과정에서 ffserver.c는 수정되었지만 아직 ffserver_config는 수정되지 않은듯 하다.
(왜 이렇게 하지??? 같이 수정하지 않고...)
* 결국 ffmpeg의 release/3.2 branch을 이용해서 컴파일하고있다...
git clone -b "release/3.2" https://github.com/FFmpeg/FFmpeg.git
* release/3.2도 문제가 발생한다.. 단 해결방법이 있다.
ffserver.c:3000에 이걸 추가하면 된다.
stream->streams[i]->codecpar = avcodec_parameters_alloc(); // 이 라인 추가
avcodec_parameters_from_context(stream->streams[i]->codecpar, stream->streams[i]->codec);
'기타' 카테고리의 다른 글
Proxmox (qemu) Windows 10 무한 부팅 (시동 복구) (0) | 2021.07.22 |
---|---|
Windows 10 - 외장하드 "장치가 준비되지 않았습니다." 문제 (0) | 2018.01.16 |
StartSSL 인증서 사용 불가... (0) | 2017.01.23 |
Windows 에서 프로그램 설치시 MSI 1603 오류... (0) | 2015.12.28 |
인터넷 - 페이스북 막혔을때 (0) | 2015.07.31 |
댓글