Java Gstreamer 바인딩 1을 사용하여 디스크에서 오디오 파일을 읽고이 파일의 세그먼트를 디스크에 다시 기록하려고합니다. 이를 위해 "filesrc"요소를 사용할 수 없지만 대신 Gnonlin 플러그인의 "gnlurisource"요소를 사용할 수 있음을 알게되었습니다. 2.Java Gstreamer Gnonlin 소스 세그먼트 화
저는 Gstreamer Java 바인딩을 사용했고 로컬로 컴파일하여 프로젝트에 추가 한 jar 파일을 가져 왔습니다. 또한 다음 명령을 사용하여 우분투에있는 GStreamer를 설치 :
sudo apt-get install libgstreamer1.0-dev
sudo apt-get install gstreamer1.0-gnonlin
이 프로그램은 오류없이 컴파일하지만 붙어 남아 있고 아무것도하지 않습니다. 내 프로그램 코드를 첨부 아래 :
import java.util.concurrent.TimeUnit;
import org.freedesktop.gstreamer.Element;
import org.freedesktop.gstreamer.ElementFactory;
import org.freedesktop.gstreamer.Gst;
import org.freedesktop.gstreamer.Pipeline;
import org.freedesktop.gstreamer.State;
public class AudioSegmentation {
public static void main(String[] args) {
Pipeline pipe;
Element asr;
Element composition;
Element gnlsource;
Element convert;
Element filesink;
Gst.init();
pipe = new Pipeline("SimplePipeline");
composition = ElementFactory.make("gnlcomposition", "comp");
gnlsource = ElementFactory.make("gnlurisource", "gnlsource");
convert = ElementFactory.make("audioconvert", "compconvert");
filesink = ElementFactory.make("filesink", "filesink");
gnlsource.set("uri", "file:///home/user/Desktop/file-source.wav");
gnlsource.set("start", TimeUnit.SECONDS.toNanos(5));
gnlsource.set("duration", TimeUnit.SECONDS.toNanos(2));
filesink.set("location", "/home/user/Desktop/file-destination.wav");
composition.link(gnlsource);
pipe.addMany(composition, convert, filesink);
Element.linkMany(composition, convert, filesink);
pipe.setState(State.PLAYING);
Gst.main();
Gst.quit();
}
}
내가있는 GStreamer 너무 많은 경험이 없어, 당신은 나에게 무슨 문제에 대한 힌트를 줄 수 있습니까?
감사합니다.