2016-08-10 2 views
1
  • FLAC 파일을 MP3 (및 Vorbis, 두 번째 시간) 파일로 변환하려고합니다.Gstreamer에서 오디오 인코딩의 비트율을 PLAYING 상태로 변경하는 방법은 무엇입니까?

  • 이러한 MP3/Vorbis 스트림은 원시 코드로 디코딩 된 두 번째 장치로 전송됩니다.

  • 전송 품질에 따라 전송 중에 비트 전송률을 변경할 수 있기를 원합니다.

  • 변경 사항은 gapless 여야합니다 (따라서 "제목의"PLAYING 상태 "에 있음).

  • 특정 인코더는 lamemp3encvorbisenc이며 변경할 수 없습니다. 재생이 코덱 실제로 수없는 상태에서 비트 레이트를 변경 내 지식


.

하지만 스트림에 간격을 두지 않고 비트 전송률을 변경하는 간단하고 명확한 방법이 있습니다. 그 중 일부에 대해 배우고 싶습니다.

:

답변

2

(NB는. 난, 난 그냥 작동하는 무언가를 원하는 어떤, 모든, 나는 "최고"방법을 요구하고 있지 않다 , 내가 검토를 요구하고 있지 않다되지 쓰기 않았다) .. this 통해

을 읽고 당신은 :

  • 블록 요소 인코딩 된 프레임 높이
  • lamemp3enc도 전에 절름발이와 EOS을 폐기 전송 EOS와 큐로는 NULL 상태로
  • 변화를 lamemp3enc을 설정
  • 재생에 절름발이 설정 또는 일시 매개 변수 절름발이
  • 나오는 경우 -이 새로운으로 다시 프리 롤 것 데이터를 사용하여 새 비트 레이트
  • 체크 절름발이가 연주에 그리고 당신은 마녀
을하고있는 모든 큐가 당신 동안 앞으로 전송 된 버퍼를 많이 가지고로
  • 가 틈이 없어야하고있다 알고

    위의 링크에서 예제를 통해 자신감을 불러 일으킬 수 있습니다.하지만 새로운 요소를 제거하고 추가하지는 않습니다. NULL 상태로 설정하는 것을 잊지 마십시오. 모든 내부 상태를 삭제합니다 (잘하면 버그가없는 경우). 그러면 g_object_set으로 매개 변수를 변경하는 것입니다 ...

    또한이 작업을 수행 한 적이 없으므로 내가 정체되어 있거나 확실하지 않은 경우 freenode의 #gstreamer에 대해 IRC에 질문 할 수도 있습니다. 그것은 내가 생각했던 것보다 더 쉽게 밝혀졌다 ... 나는 현재 GstInputSelector`과`GstOutputSelector``의 몇 가지를 사용했지만이 많은 수준에 문제가 있었다 :

    HTH

  • +0

    아, 그건 훨씬 더 나은 내가 아니다 프로브를 다루는 데 사용되었지만 매우 강력합니다! 감사! – JohnW

    관련 문제