일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 도쿄 혼자 여행
- headless server
- GoogleCloud
- frame stack
- vogl
- cinder-volume
- graphics programming
- 혼자여행
- c-vol.service
- 일본 혼자 여행
- Azure Linux VM
- 도쿄여행
- devstack
- 시부야 여행
- lvmdriver-1
- OSMesa
- DeepLearning
- 에비스 맥주 기념관
- 논문리뷰
- scratchapixel
- cloudvm
- 에비스 맥주
- 군입대 전 여행
- 편의점 당고
- Azure Linux
- Azure Ubuntu VM
- offscreen-rendering
- OpenGL
- 학부생
- OpenStack
- Today
- Total
사월의눈의 DevBlog
ffmpeg을 이용하여 OpenGL Offscreen rendering 본문
내가 Cubbyflow의 Visualization 파트를 맡게 되면서 OpenGL 개발을 하게 되었는데, 문제는 내가 군인이어서 프로그램을 다운받고 빌드 하는 것이 불가능 하다는것.
그래서 지금 임시방책으로 Microsoft azure에서 Ubuntu VM을 구매하여 서버에서 개발하고 있다.
문제점은 RDP port를 이용할 수 없기에, GUI 활용이 불가능하다.
그래서 개발은 서버 환경에서 한 다음, offscreen rendering 하여 나온 이미지를 웹에 띄우고 보고 디버깅하는 것이 최선이다.
처음에는 image를 120frame 정도 뽑아내고, 이를 imagemagick 툴을 이용하여 gif로 변환하여 보았는데, 이게 꽤나 번거로운 작업이고 gif 확장자로는 부드럽게 결과물을 볼 수가 없다.
그래서 아예 처음에 빌드할 때 RECORDING 옵션을 주면, ffmpeg 라이브러리를 이용해서 시뮬레이션의 처음부터 끝까지 녹화하도록 하려고 구현을 하고있다.
코드는 github를 보고 참고하여 다음과 같이 구현하였다. avcodec_register_all, avcodec_encode_video2 등 deprecated된 코드가 있었는데, 문제는 ffmpeg 개발자 측에서 deprecated된 함수의 대체안을 message로 알려주지 않아 유저가 직접 찾아야 했다.
수십번의 삽질 끝에 avcodec_register_all은 아예 없애도 되고, avcodec_encode_video2는 avcodec_send_frame, avcodec_receive_frame으로 대체하야 한다는 걸 알아냈다.
필요한 분은 다음 링크를 참고하세요.
https://ffmpeg.org/doxygen/trunk/encode__video_8c_source.html
FFmpeg: doc/examples/encode_video.c Source File
int max_b_frames maximum number of B-frames between non-B-frames Note: The output will be delayed by max_b_frames+1 re... enum AVPixelFormat pix_fmt Pixel format, see AV_PIX_FMT_xxx. AVRational time_base This is the fundamental unit of time (in seconds) in
ffmpeg.org
'Real Time Rendering > OpenGL' 카테고리의 다른 글
[Scratchapixel] (Geometry) Points, Vectors and Normals (0) | 2020.07.19 |
---|---|
OpenGL Segmentation Fault [Solved] (0) | 2020.04.04 |
CLI 환경에서의 OpenGL Debugger (0) | 2020.03.25 |