본문 바로가기
SWE/스트리밍

GStreamer Basic tutorial 실행 결과

by S나라라2 2022. 7. 7.
반응형

https://gstreamer.freedesktop.org/documentation/tutorials/basic/index.html?gi-language=c 

 

Basic tutorials

Basic tutorials These tutorials describe general topics required to understand the rest of tutorials.

gstreamer.freedesktop.org

 


GStreamer 튜토리얼 설명이 잘되어있다. 그래서 하나씩 실행해가면서 GStreamer 의 구조를 익히고 있다.

근데 각 튜토리얼의 코드를 실행했을 때 결과물이 어떻게 나오는지 안나와있다. 

그래서 내가 하나씩 실행해보며 결과물을 모아놔야겠다.

 


basic-tutorial-1 : Hello world

신텔 영상 플레이되면 성공

 

 

basic-tutorial-2 : GStreamer concepts 이해

 

 

basic-tutorial-3 : 동적으로 pipelines 구성

신텔 오디오가 들리면 성공

  • 비디오는 보이지 않고 오디오만 들리는 이유는 코드에서 비디오는 무시하고 오디오 패드만 링킹했기 때문이다.
  • audioconvert, audioresample, autoaudiosink

 

 

basic-tutorial-4 : 시간 관련 기능

신텔 영상이 재생되고, 현재 재생되는 영상의 위치가 터미널에 출력되면 성공

  • 10초쯤에 영상이 잠시 끊기는 이유
    •  gst_element_seek_simple()함수의 플래그에 GST_SEEK_FLAG_FLUSH를 줬기 때문이다.
    •  GST_SEEK_FLAG_FLUSH : seek을 수행하기 전에 현재 파이프라인에 있는 모든 데이터를 버린다. 그래서 파이프라인을 다시 채우고 새로운 데이터를 보여주기 전까지 잠시 영상이 멈출 수 있는 것이다.
    •  이러한 문제에도 불구하고 이 플래그를 주는 이유는 데이터가 탁해지는 것을 막을 수 있기 때문이다.
  • 현재 재생되는 미디어의 위치를 출력하는 방법
    • 100*GST_MSECOND: gst_but_timed_pop_filtered() 함수에 타임아웃 시간을 파라미터로 넘겨준다. 
    • 타임아웃 파라미터를 주면 100msec마다 NULL을 반환하고 여기에서 시간을 리프레시 해준다.
    • gst_element_query_position
    • gst_element_query_duration
반응형