2011-12-22 5 views
1

"-1"비율 매개 변수로 비디오 파일을 되감 으려고합니다. 잠시 동안 되감기 한 다음 재생이 중지됩니다. 마침내 플레이어가 죽습니다. 그러나 동일한 비디오 파일의 빨리 감기가 정상적으로 작동합니다. 필자는 "2x"및 "4x"속도로 테스트했습니다. 특정 기간 (속도가 "1.0")으로 거꾸로 추구하면 타임 스탬프로 이동하여 예상대로 재생을 시작합니다. 내가 이해, 이벤트를 탐색에서Gstreamer : 비디오 파일의 되감기

가 상기 파이프 라인의 디멀티플렉서 요소에서 처리됩니다

  1. 그것은 현재 대기중인 스트림 데이터
  2. 를 플러시는 시크에서 업데이트 된 값으로 새로운 세그먼트를 작성합니다 행사.
  3. 새 세그먼트가 새 스트림 데이터로 준비되면 재생이 시작됩니다. 여기에서 새 세그먼트에 설정된 새 매개 변수에 따라 재생이 시작됩니다.

역 재생을 위해 파이프 라인이 실제로 차단되는 위치를 파악할 수 없습니다. demuxer 요소가 데이터를 가져 와서 새 세그먼트에 밀어 넣는 것을 볼 수 있습니다. 누구든지 문제를 제기 할 수 있습니까?

답변

3

역방향 재생이 제대로 구현되지 않았을 수 있습니다. 버그를 신고하고 형식에 대한 세부 정보 (예 : gst-discoverer 사용) 및 가능한 경우 파일에 대한 링크를 제공하십시오.

+0

내가 시도한 형식은 MKV입니다. 되감기는 seek 이벤트를 보내는 동안 사용할 탐색 플래그에 따라 특정 경우에 작동합니다. 예 : GstSeekFlags :: GST_SEEK_FLAG_KEY_UNIT 또는 GST_SEEK_FLAG_NONE을 사용하는 경우 되감기가 작동합니다 (표시되는 키 프레임이 표시되지 않음). 재생 시간은 뒤로 값으로 업데이트되고 다시 재생하면 되감기 후에 실제 위치에서 재생되기 시작합니다. GstSeekFlags :: GST_SEEK_FLAG_FLUSH를 사용하면 되감기가 실패합니다. 되감기 중에 표시된 키 프레임을 적어도 하나씩 가져올 수 있도록 내가 어디에 있어야하는지 알려주십시오. –

+0

스크러빙 (또는 많은 수색 이벤트를 보내는 경우) _KEY_UNIT은 시간 낭비가 없으면 정확한 위치로 이동하기 위해 프레임을 디코딩하고 버리는 것처럼 좋은 아이디어입니다. 플러시는 속도를 변경할 때 필요하지 않은 파이프 라인을 간단하게 배출합니다. – ensonic

관련 문제