我正在使用VLCJ,我希望保存一个我正在使用mediaPlayer.playMedia()播放的视频片段;到我的桌面。我知道这可以通过使用:sout字符串设置媒体选项来完成,但我不知道要设置哪些选项,而且我无法理解网络上的示例选项字符串。有人可以通过解释以下内容来帮助:sout选项字符串吗?
String[] options = {":sout=#transcode{vcodec=mp4v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display}", ":input-slave=alsa://hw:0,0"};
我只需要一个使用fileName目标创建mp4视频的选项数组。这些选项对我来说失败/错误。
此外,VLCJ似乎因此错误而丢失了大量的帧
avcodec解码器错误:超过5秒的后期视频 - >丢帧
使用这些选项
String[] options = {":sout=#transcode{vcodec=mp1v,vb=2048,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{mux=mpeg1,dst=" + fileName + "},dst=display}", ":input-slave=dshow://hw:0,0" };
答案 0 :(得分:1)
要保存原始信息流,请在播放媒体时使用与以下内容类似的媒体选项:
String mrl = "your-streaming-mrl";
String[] opts = {"sout=#duplicate{dst=std{access=file,mux=raw,dst=output-file.ext}}"};
显然,您可以用适当的方式替换“your-streaming-mrl”和“output-file.ext”。
然后:
mediaPlayer.playMedia(mrl, opts);
在保存的文件准备就绪之前,您需要等待(监听)媒体播放器“已完成”事件。
您可能还需要在保存的文件准备好之前在媒体播放器上显式调用release()
。