반응형

비엔나에서 발레를 보려니 가격이 만만치 않다.

포기를 하던차에 지인이 프라하 국립극장에서 보면 가격도 부담없고, 퀄리티도 좋다 그래서 보니 정말 메리트 있어서 예약을 하려고 보니 좌석이 영어도 아닌것이 너무 정신없고 정보가 없어서 선택을 하기 쉽지 않다.

이럴때 chatgpt를 잘 활용하니 정보가 깔끔하게 나와서 저장해본다.

프라하에서 발레를 감상할 수 있는 대표적인 공연장은 **프라하 국립극장 (Národní divadlo)**와 **에스테이트 극장 (Stavovské divadlo)**입니다. 두 극장 모두 아름다운 내부와 훌륭한 음향, 시야를 제공하지만 좌석별로 관람 경험이 다를 수 있습니다. 좌석 선택에 대한 자세한 정보를 제공해 드리겠습니다.
1. 오케스트라 석 (Orchestra/Stalls)
위치: 무대와 같은 층에 위치한 좌석으로, 무대와 가장 가까운 위치에 있습니다.특징 및 장점:배우들의 표정과 움직임을 자세히 볼 수 있습니다.음향이 직접적으로 전달되어 생동감 있는 사운드를 즐길 수 있습니다.발레에서 춤의 디테일을 중점적으로 감상하고 싶은 경우 좋습니다.추천 열:앞쪽에서는 3~6열이 가장 좋습니다. 첫 두 열은 목을 많이 젖혀야 하며, 7열 이후로는 시야가 조금 더 제한될 수 있습니다.
2. 박스 석 (Boxes)
위치: 극장의 양옆과 뒤쪽 벽에 위치한 개인용 박스 석.특징 및 장점:개인적이고 프라이빗한 경험을 제공합니다.옆쪽 박스는 무대 측면을 약간 비스듬하게 보게 되지만, 박스의 위치에 따라 무대 전체를 잘 볼 수 있습니다.고급스러운 분위기에서 공연을 감상할 수 있어 특별한 경험을 원할 때 좋습니다.추천 위치:중앙에 위치한 박스나, 무대에 가까운 앞쪽 박스가 더 좋은 시야를 제공합니다.중간 박스에서는 앞쪽 좌석이 더 나은 시야를 보장합니다.
3. 발코니 석 (Balcony)
위치: 극장의 2층이나 3층에 위치한 좌석.특징 및 장점:무대를 전체적으로 조망할 수 있어 발레의 대규모 군무나 무대 전체의 구성을 감상하기에 좋습니다.소리가 고르게 퍼져 음향적으로도 좋은 경험을 할 수 있습니다.상층 발코니는 가격이 더 저렴해 가성비가 좋습니다.추천 열:1층 발코니의 1~2열이 시야와 음향 면에서 최적입니다.2층 발코니의 경우도 1열은 훌륭한 선택입니다.
4. 갤러리 석 (Gallery)
위치: 가장 높은 층에 위치한 좌석.특징 및 장점:전체적인 무대 구성을 감상할 수 있지만, 무대와의 거리가 가장 멉니다.예산이 제한된 경우나, 전체적인 구성을 보려는 관객에게 적합합니다.추천 열:갤러리에서 가장 앞쪽 열이 가장 좋으며, 시야가 좀 더 넓게 확보됩니다.

결론
프라하에서 발레를 감상할 때 최고의 좌석은 개인의 선호에 따라 달라질 수 있습니다. 무대 가까이에서 세밀한 움직임을 보고 싶다면 오케스트라 석이 좋고, 전체적인 구도와 대규모 군무를 선호한다면 발코니나 갤러리 석이 좋습니다. 특별한 경험을 원한다면 박스 석이 적합합니다. 일반적으로 오케스트라 석의 36열, 발코니의 12열이 가장 추천됩니다.

 

추가 ====================

발레 공연 후기

https://onestepcloser.tistory.com/254

 

[프라하] 프라하 국립극장에서 발레 공연 후기

프라하 국립 극장(Národní divadlo)프라하와 비엔나를 비교를 많이 하는데, 사실 양쪽에서 모두 본 입장에서 예술쪽에 조예가 깊지 않은 이상 비엔나에서 예술 공연을 보는 가격이 부담이 된다면,

onestepcloser.tistory.com

 

반응형
반응형

Pad negotiation

Gstremaer에서 개발하는데 잘 모르고 개발이 잘 안되는 가장 큰 부분이 Pad Negotiation이다. 대충 Printf로 찍어보며 개발이 안된다. 원리를 이해를 해야 할거 같아서 페이지에서 정리할 겸 번역하며 정리를 해보았다.

Negotiation

Basic Rules

These simple rules must be followed:

  1. downstream suggests formats
  2. upstream decides on format

4 Queris/events used in negotiation

  1. GST_QUERY_CAPS: get possible formats
  2. GST_QUERY_ACCEPT_CAPS: check if format is possible
  3. GST_EVENT_CAPS: configure format (downstream)
  4. GST_EVENT_RECONFIGURE: inform upstream of possibly new caps

Query

Pad query는 GstCaps로 이용하며 재귀적으로 동작할 수 있음

  • filter (in) GST_TYPE_CAPS (default NULL): - a GstCaps to filter the results against
  • caps (out) GST_TYPE_CAPS (default NULL): - the result caps

Pad는 peer pad에 주어진 caps가 지원되는지 물어볼 수 잇따. 이것은 ACCEPT_CAPS query를 통해 이루어진다. 이때 caps는 반드시 fixed여야 한다. ACCEPT_CAPS는 Recursive로 동작하지 않는다. 단순히 accept되어지면 TRUE를 return한다.

  • caps (in) GST_TYPE_CAPS: - a GstCaps to check, must be fixed
  • result (out) G_TYPE_BOOLEAN (default FALSE): - TRUE if the caps are accepted

Event

mediaformat 이 negotiated 상태가 되면 peer element는 CAPS event로 notified된다. 이떄 caps는 반드시 fixed여야 한다.
caps GST_TYPE_CAPS: - the negotiated GstCaps, must be fixed

Operation

Gstreamer는 두가지 scheduling mode를 지원하며 이것은 push mode와 pull mode이다 두가지는 목표가 다른 서로 다른 메커니즘으로 동작한다.

Push-mode negotiation

Push-mode negotiation은 element가 buffer를 push하고 format을 결정하기를 원할때 이루어지며, 이는 downstream negotiation으로 불리는데 이는 upstream element는 downstream element에 대하여 format을 결정하기 때문이고 이것은 일반적인 케이스이다.

Negotiation은 또한 downstream element가 upstream element로 부터 다른 data format을 받기를 원할때도 이루어진다.

Basic negotiation은 아래와 같다.

  • GstCaps는 buffer의 contents에 대한 describe의 event를 push하기 이전에 참조 카운트를 한다.
  • Element는 이어질 Buffer의 processing이전에 CAPS event로서 새로운 format을 전달받기 위하여 스스로 reconfigure되어야 한다. 만약 data type이 not acceptable일 경우, element는 event 를 거절(refuse)해야 한다. Element는 chain function에서 buffer 유입에 대해서 GST_FLOW_NOT_NEGOTIATED를 return해야 한다.
  • Downstream element는 upstream 에 대해서 RECONFIGURE event를 보냄으로, stream format이 변경에 대해 요청을 할 수 있다. Upstream element은 RECONFIGURE event를 수신하면 new format에 대해서 다시 negotitation을 수행할 것이다.

아래는 source pad의 negotiation을 시작하는 일반적인 Flow이다.

            src              sink
             |                 |
             |  querycaps?     |
             |---------------->|
             |     caps        |
select caps  |< - - - - - - - -|
from the     |                 |
candidates   |                 |
             |                 |-.
             |  accepts?       | |
 type A      |---------------->| | optional
             |      yes        | |
             |< - - - - - - - -| |
             |                 |-'
             |  send_event()   |
send CAPS    |---------------->| Receive type A, reconfigure to
event A      |                 | process type A.
             |                 |
             |  push           |
push buffer  |---------------->| Process buffer of type A
             |                 |

아래는 구현에 대한 Pseudo code 예제이다.

[element wants to create a buffer]
if not format
  # see what we can do
  ourcaps = gst_pad_query_caps (srcpad)
  # see what the peer can do filtered against our caps
  candidates = gst_pad_peer_query_caps (srcpad, ourcaps)

  foreach candidate in candidates
    # make sure the caps is fixed
    fixedcaps = gst_pad_fixate_caps (srcpad, candidate)

    # see if the peer accepts it
    if gst_pad_peer_accept_caps (srcpad, fixedcaps)
      # store the caps as the negotiated caps, this will
      # call the setcaps function on the pad
      gst_pad_push_event (srcpad, gst_event_new_caps (fixedcaps))
      break
    endif
  done
endif

Negotiate allocator/buffer pool with the ALLOCATION query

    buffer = gst_buffer_new_allocate (NULL, size, 0);
    # fill buffer and push

아래는 sink pad의 renegotiation을 시작하는 일반적인 Flow이다.

            src              sink
             |                 |
             |  accepts?       |
             |<----------------| type B
             |      yes        |
             |- - - - - - - - >|-.
             |                 | | suggest B caps next
             |                 |<'
             |                 |
             |   push_event()  |
 mark      .-|<----------------| send RECONFIGURE event
renegotiate| |                 |
           '>|                 |
             |  querycaps()    |
renegotiate  |---------------->|
             |  suggest B      |
             |< - - - - - - - -|
             |                 |
             |  send_event()   |
send CAPS    |---------------->| Receive type B, reconfigure to
event B      |                 | process type B.
             |                 |
             |  push           |
push buffer  |---------------->| Process buffer of type B
             |                 |

Pull-mode negotiation

Pull mode Pipeline 은 push mode와 negotiation 요구사항이 다름. Push mode는 아래의 두가지 Use cases에 최적화 되어 있음

  • Media file Playback에 대해서 어떤 정보가 전달되어야 하는 고나점에서의 decoder, demuxer의 관점
  • Live source recording에 대해서 source element 다음에 capsfilter를 추가하는데 익숙함, 그러므로 caps information flow는 Pipeline의 sink들을 향해서 source의 잠재적인 caps를 통해 user에 의해 결정됨.

그에 반해 Pull mode는 아래의 전형적인 use case들이 있음

  • RTP와 같은 손실이 있는 Source를 재생할 떄에 Latency에 대한 추가 정보로 품질을 향상 시킬 수가 있음.
  • 오디오 합성에서, 오디오 API는 필요한 샘플 수만 생성하도록 조정되며, 일반적으로 하드웨어 인터럽트에 의해 구동되어 DMA 버퍼나 Jack[0] 포트 버퍼를 채우는 방식으로 작동함.
  • 저지연 효과 처리를 위해, 필터는 데이터를 링 버퍼에서 싱크로 전송할 때 적용되어야 하며, 미리 적용되지 않아야 함. 예를 들어, alsasink의 내부 링버퍼 스레드를 푸시 모드에서 사용하는 대신, wavsrc ! volume ! alsasink와 같은 구성 대신 wavsrc ! audioringbuffer ! volume ! alsasink로 사운드 카드 쓰기 스레드 내에 볼륨을 배치하는 방식이 있음.

Pull mode에서 문제는 sink가 gst_pad_pull_range()를 통해 몇 바이트를 가져와야 하는지 알기 위해 format을 알아야 한다는 점이 있음. 이는 데이터를 가져오기 전에 sink가 negotiation을 시작하여 format을 결정해야 함을 의미함.

RTP 및 저지연 재생은 일반적인 재생과 유사하게 정보가 downstream으로 흐름.

오디오 합성에서는 정보가 가장 많은 부분이 sink 쪽에 있으며, 이때 caps는 완전히 지정되지 않고 사용자가 샘플 속도 등을 선택해야 합니다. 이 과정은 gstreamer 외부에서나 capsfilter를 통해 수행될 수 있음.

싱크가 소스의 입력을 필요로 하는 경우 협상 단계가 필요하며, 풀 모드의 저지연 특성상 풀링 스레드 내에서 협상을 피해야 함.

Pull thread는 보통 PAUSED에서 PLAYING으로 상태가 변경될 때 시작되므로, 이 상태 변경 전에 negotiation을 완료해야 함.

따라서 caps negotiation은 SCHEDULING Query가 성공한 후, pulling thread가 시작되기 전에 수행해야 함.

Machanism

Sink는 SCHEDULING query를 통해 Upstream element들이 Pull based scheduing을 지원하는지 확인함.

Sink는 자신의 sink pad와 연결된 src pad에서 gst_pad_query_caps()의 결과를 교차하여 Negotiation 과정을 시작합니다. 간단한 Passthrough의 경우, 피어 패드의 caps through는 모든 sink pad에 대해 get_allowed_caps()를 호출한 결과의 교집합을 반환해야 합니다. 이를 통해 sink element는 Pipeline 전체의 기능을 파악합니다.

필요한 경우 sink element는 결과 caps를 고정하여 flow caps를 생성합니다. 이 시점부터 sink pad의 caps query는 이 fixed caps만 반환하며, Upstream element들은 이 형식만 생성할 수 있게 됩니다.

sink element가 sink pad에 caps를 설정하지 못했다면, 버스에 오류 메시지를 게시하여 Negotiation이 불가능했음을 알립니다.

Negotiation이 성공하면, sink pad와 모든 내부적으로 연결된 Upstream Pad가 Pull mode로 활성화됩니다. 일반적으로 이 작업은 Downstream element에서 Negotiation을 trigger하여, 이제 Sink pad의 최종 Fixed caps와 Negotiation하게 됩니다.

이 단계가 완료된 후, Sink element는 상태 변경 함수에서 ASYNC를 반환합니다. 첫 번째 버퍼가 Sink에 도착하면 상태가 PAUSED로 전환됩니다. 이는 Sink에서 ASYNC 반환 값을 기대하는 application에 일관된 API를 제공하기 위해 필요하며, Polling thread의 Context 외부에서 나머지 negotiation을 수행할 수 있도록 합니다."

Pattern

Negotiation에서 3가지 패턴을 구분할 수 있음:

  1. 고정(Fixed): 출력 형식을 선택할 수 없음.
    • Stream에 인코딩된 caps
    • 비디오/오디오 decoder가 일반적으로 사용
    • gst_pad_use_fixed_caps()를 사용
  2. 변환(Transform): CAPS가 수정되지 않음(passthrough)
    • 요소 속성에 따라 CAPS 변환 가능
    • 고정된 caps가 고정된 caps로 변환
    • 예: videobox
  3. 동적(Dynamic): 출력 형식을 선택할 수 있음
    • 변환 요소
    • Downstream caps에 따라 다르며, CAPS 쿼리 필요
    • 일반적으로 동일한 변환을 선호
    • 고정된 caps가 고정되지 않은 caps로 변환 가능

출처

https://gstreamer.freedesktop.org/documentation/additional/design/negotiation.html?gi-language=c
반응형
반응형

Gstreamer 개발시 VPN같은것을 사용해서 원격으로 개발할 경우 display port나 설정같은게 귀찮고 복잡하다.
autovideosink등을 이용해서 개발 할 떄에는 실제 현재 환경에서의 DISPLAY 값을 가져가기 때문에,
X11등으로 할때에는 바로 네트워크의 상태에 따라 테스트가 용이하지 않기도 하다.

실제로 영상이 어떻게 나오는지 실시간으로 알 필요가 없을 경우 아래와 같이 file out을 할 경우 개발하기 편하다.

$ gst-launch-1.0 \
  filesrc location=<FILE PATH> ! qtdemux ! decodebin ! videoconvert ! x264enc ! mp4mux ! filesink location=output.mp4
반응형
반응형

영상 Custom GIF

제품 상에 원래 있는 GIF가 표현되는데 무슨 비를 뚫는 우비입은 아저씨 같이 생긴게 빙글빙글 도는 이미지가 출력된다.
이것을 처음 사서 설치를 했을때 장마기간이라 이게 비오는 것을 표현한건가 보다 했는데 해가 쨍쨍해도 그 이미지가 표현되서 보니 그냥 GIF를 보여주는 기능이었다. 다른것으로 바꿔보려고 하니 마음에 드는게 없어서 무료 GIF 사이트 뒤지다가 고양이를 좋아해서 간단한 새끼 고양이 GIF를 변환 사이트를 이용해서 변환해서 사용하였다.

주의점

기본적인 용량이 얼마 안된다. Default로 있는 이미지가 있는 상태에서는 200KB가 안되는 여유공간밖에 없어서 사용할 수 있는 GIF 용량에 한계가 있다. 필자와 같은 경우 안쓸만한 큰 이미지는 삭제를 하여 용량을 확보하고 아래 이미지를 사용하였다.

사용 방법

제품의 IP로 접속해서 Weather 메뉴를 선택해서 들어간다.

5번 Gif In The Weather Screen 를 선택하고, 필요시 사용하지 않을 이미지를 삭제해서 용량을 확보하고, GIF를 업로드하고 선택해주면 우측 하단에 이미지가 나온다.

이미지

필자가 변환하여 사용하는 Image를 두개 첨부한다.

반응형
반응형

키토 김밥

간단하고 영양가있고 살찔까봐 크게 걱정안할만한 음식은 김밥이 최고다.
인근에 자주가던 김밥집이 있는데, 영업시간에 영업을 하지 않았다.
빨리 한끼를 해결하고 출근을 해야 되서 주위를 뒤져보던 중에 근처에 키토김밥이라는걸 파는데가 있어서 가봤다.

주로 배달을 하는지 가게 내부는 약간 훵했다. 매장 장사는 안하나 걱정이 되었는데, 주인분이 살갑게 맞아주는 것이 따로 없어서 좋았다. 난 그냥 언능 주문하고 빨리 먹고 나가는것을 선호하다보니 직원이나 사장님이 갑자기 와서 이리 저리 설명해주는 것보단 이런게 좋다. 메뉴에 매장 메뉴가 있는 것으로 보아 매장 식사가 가능한것 같아서 결제하고 자리에 기다리니 음식이 나왔다.

김밥

키토 김밥이 뭔지 몰랐는데, 밥이 전혀 없다.
김밥 가격이 왜이렇게 비싸지 잘못들어왔다.. 생각했는데 김밥을 받아보니 그럴만도 하다.
밥이 없으면 말기 쉽지 않았을텐데 김밥들이 나름 정갈하게 말려 있다.
특히 필자는 메운것을 좋아하는데 매운맛도 종류별로 있어서 2개 주문해봤다.
2줄에 1만4천원 좀 넘게 샀던것 같은데, 사실 한끼에 김밥에 1만4천원이면 적지 않은 금액이라 생각이 되지만, 먹다보니 저렴하다까지는 아니더라도, 또 올것 같은 맛이다. 그렇다고 자극적으로 엄청 맛있지는 않지만 담백하고 매운맛이 살짝 쏘는게 꽤 괜찮았다.

 

후기

적어도 몇번은 또 올 것 같다. 건강류 음식이라 그래서 너무 밋밋하지도 않으면서 나름 딱 내 입맛에 괜찮았다.
그냥 밥에 야채 대충 몇개 들어간것도 3천5백원 4천원 하는 세상에 생각하보면 이 가격도 전혀 말이 안되는 가격은 아니다.

아쉬운 점은 김치가 없다는게 아쉽다. 김밥에 김치를 무조건 먹는 스타일이라 김밥에 김치가 없다는게 너무 큰 아쉬움이었다.
사장님께 김치 없어요? 물어보고 싶었지만, 차마 용기를 내지 못했다.

 

위치

https://naver.me/xZOxI7AS

[헬키푸키 수지구청점 : 네이버

방문자리뷰 145 · 블로그리뷰 56

m.place.naver.com](https://naver.me/xZOxI7AS

 

헬키푸키 수지구청점 : 네이버

방문자리뷰 145 · 블로그리뷰 56

m.place.naver.com

 

 

 

반응형
반응형

라파보니 오버홀

출수가 잘 안되서 디스케일링을 해봤지만, 달라지는 것은 없었다. 가급적 전문가에게 맡겨서 한번 청소하고 씰들 다 교체해달라고 해야지 하고 생각했는데, 생각보다 할 수 있는 곳이 없었다. 사실 못찾았다. 분명 몇년전에는 있었던거 같은데... 다들 잘 분해하고 청소해서 쓰니 나도 해봐야 겠다 하고 각종 유투브와 블로그로 공부를 해본 뒤에 오버홀을 시도해봤다. 생각보다 해볼만 했지만, 해본 이후에는 다시 하면 더 잘할거 같지는 않았다. 그냥저냥 해서 쓰는 정도에 만족해야 할거 같다.
중요하게 생각한 것은 두가지다.

  1. 출수양이 처음 샀을때 처럼 콸콸 쏟아질 것
  2. 레버를 올렸을 때에 연결부에서 물이 새는 것을 보완할 것.

필요 부품

라파보니의 부품을 해외에서 직구를 해야 하나 걱정이 많았는데 국내에도 판매를 하는 곳이 있었다. 정품이라는데...생각보다 가격이 무서웠다.

  1. 식용 구리스(슈퍼루브 식용윤활유 구리스 가정용 커피머신 그라인더 구리스12g - 11,900원)
  2. 보일러 해드 노즐(상품명PA005 LaPavoni 라파보니 EURO Piccola 유로삐꼴라 보일러 헤드 연결노즐 - 19,800원)
  3. 해드 오링(PA006 LaPavoni 라파보니 EURO Piccola 유로삐꼴라 보일러 헤드 연결오링 - 6,000원)

작업

별도의 작업 방법은 남기지 않는다. 유투브에 찾아보면 많다. 단순히 해드만 분해해서 샤워 스크린만 퐁퐁으로 잘 닦아줬고 나머지는 따뜻한 물에 불려서 쑤세미로 잘 닦아 줬다. 그리고 하단부를 분해해서 보일러 내부에 쑤세미를 넣어서 긁어주고 온수로 대충 씻겨줬다.

결과

물이 처음 샀을 때처럼 깔끔하게 잘 나온다. 혹시 몰라서 맞닿는 부분에 구리스를 좀 칠해줬더니 처음 샀을때 이런 느낌이었던거 같다.ㅎㅎ

작업 전/후의 출수의 차이는 아래의 영상으로 올려 놓았다.

https://youtu.be/XyvDkssP-4Q?si=Jpzyf2R1EYQaYrJk

참고

작업을 끝내니 Gasket replacement 아주 잘 설명되어 있는 유투브를 하나 찾았다. 나중에 작업할 것을 생각해서 링크를 남겨 놓는다.

  1. La Pavoni- 5 piece gasket replacement
    https://youtu.be/DwLkxOpXSOg?si=CjzKXjcPv4i2MHpB

 

반응형
반응형

라파보니 PLH 사용 기간

라파보니를 국내에 정식 판매가 되기 전에 이탈리아에서 직구로 구매를 해서 약 10년 정도 사용한 것 같다. 사용을 하면서 한번도 디스케일링이나 관리를 하지 않고 그냥 겉만 깨끗이 닦아쓰고, 쓴 다음에는 물을 항상 비우며 사용을 했지만, 갈수록 출수량이 줄어드는 것이 느껴졌다.
또한 뚜껑을 열어서 보일러 내부를 보면...

아... 그냥 소독한번 해야겠다.

라는 생각으로 보일러를 가득 채우고 물을 몇번 비우는 정도로만 하고 사용을 쭉 해왔다.

디스케일링(Descaling) 방법

이리 저리 디스케일링을 찾아보고 어떻게 해야 하나보니 일반적으로 사용하는 제품들이 많이 나와 있었다. 몇몇 커뮤니티의 선구자 분들께서 여러 자료를 분석도 해주시고, 찾아보니 제품들의 대부분은 구연산이 성분이고, 1L에 5~15g정도를 용해해서 사용하면 되는 것 같아서, 10년동안 한번도 하지 않았으니, 15g을 용해해서 넣고 전원을 올렸다.

온도가 올라간 상태에서 15분 정도는 유지를 해야 한다고 했는데, 15분으로는 안될거같아서 30분 유지를 한 후에 물을 빼줬다.
적다라한 색이 내가 관리를 제대로 하지 않음을 창피하게 했다. 미안한 마음에 동일한 양을 넣고 한번 더 해줬다.
그 이후에는 물을 가득 채워줘서 3번 정도 세척해줬다.

세척한 이후에는 열이 들어오는 부분과 바닥 부분이 깨끗해져 있는 것이 확인되었다.

그룹 헤드로 들어가는 동관에 스케일은 제거됬지만, 녹이 슬은것 처럼 되었다. 이건 스케일링하면 어쩔수 없는 것 같다.

다만 출수를 해보면 그닥 큰 차이가 없는 것으로 보아 디스케일로 전체가 깨끗해지지는 않는것 같았다.
한 1년에 한두번 정도는 디스케일링으로 관리를 해줘야 겠다.

오버홀(Overhaul)

동관에 녹도 제거해야되고, 출수가 원활하지 않으니, 오버홀을 진행했다.
오버홀 작업기 : https://onestepcloser.tistory.com/243

반응형
반응형

FUNC+SPACE를 눌러도 아무것도 나오지 않을때

근데 FUNC + FKEY로는 모드 변경되고 그땐 LED가 나오는데

도대체 뭔지 몰라서 하루종일 뒤져봤는데...

 

FN + L 을 눌러보시길

초지연 모드로 들어가서 LED가 동작하지 않는 상황인듯

 

키캡 좀 바꾸려다 저게 눌렸는지

하루종일 뻘짓 했네..

반응형
반응형

1장의 JPEG image 반복으로 display하기

 $ gst-launch-1.0 multifilesrc location=<FILE LOCATION> ! jpegdec ! videoconvert  ! autovideosink

1장의 mp4파일 demux하여 video만 display하기

 $ gst-launch-1.0 filesrc location=<FILE LOCATION> ! qtdemux ! decodebin ! videoconvert ! autovideosink

output 비디오 FPS 변경하기

 $ gst-launch-1.0  ... ! videorate ! video/x-raw,framerate=10/1 ! ...

output 비디오 scale 변경하시

 $ gst-launch-1.0 ... ! videoscale ! video/x-raw,width=640,height=360 ! ...

dot 파일 생성하여, Pipeline 도식화 하기

 $ GST_DEBUG_DUMP_DOT_DIR=./<PATH> gst-launch-1.0 ...

dot 파일 생성

#!/bin/bash

DOT_FILES_DIR="."
PNG_FILES_DIR="."

DOT_FILES=`ls $DOT_FILES_DIR | grep dot`

for D in $DOT_FILES; do
        PNG_FILE=`echo $D | sed s/.dot/.png/`
        echo "dot -Tpng $DOT_FILES_DIR/$D > $PNG_FILES_DIR/$PNG_FILE"
        dot -Tpng $DOT_FILES_DIR/$D > $PNG_FILES_DIR/$PNG_FILE

done

현재 폴더 전체 DOT파일 JPEG파일로 변경

Memory Leak 테스트

 $ GST_TRACERS="leaks(GstBuffer)=TRUE" gst-launch-1.0 ...

Plugin latency 테스트

 $ GST_TRACERS="latency" gst-launch-1.0 ...

Log file 생성

 $ GST_DEBUG_FILE=<FILENAME.log> gst-launch-1.0
반응형
반응형

오즈모 포켓3 망원렌즈

별도로 구매도 가능하지만, 크리에이터 콤보를 구매시에 구성품 중에 망원 렌즈가 포함되어 있다. 이 망원렌즈와 같은 경우 자석으로 되어있어서 붙여서 쓸 때도, 또 보관을 할때도 케이브에 별도 공간에 자성으로 붙여서 사용할 수 있기 때문에, 필자와 같은 경우 사용이 편리하고 용이하다고 생각을 한다.

화각

일반 카메라에서 망원 렌즈를 붙였을 때에 확실한 화각의 차이로 이것이 망원 렌즈구나 생각을 하게 될 정도로 체감이 되지만, 이 오즈모 포켓3에 있는 망원렌즈를 붙일 경우 붙였다 뗐다를 반복해도 얼마나 화각이 늘어났는지에 대한 체감이 쉽지 않다.

오즈모 포켓3 망원렌즈 화각 비교

순정상태


순정 상태의 화각이다.

망원렌즈를 붙인 상태


망원 렌즈를 붙였을 때의 상태이다.

필자 결론

화각이 무의미하게 넓어진다고 볼 수 없을 정도 하지만 훨신 크다라고 말하기 어려울 정도의 화각이 늘어났다. 다만 촬영중에 렌즈를 바꿨을 때에 늘어난 풍경의 크기를 가늠하기는 어려울 만큼의 화각이 늘어났다. 그렇다고 안쓰는 것과 큰 차이가 없다고 말하기는 어려울 것 같다. 분명 조금만 더 늘어났으면...하는 상황은 있다. 풍경의 모습을 한번에 담아야 할때 쓰면 모니터로 볼 때에 분명 더 넓은 화각의 영상을 담을 수 있을 것 같다.

반응형

+ Recent posts