我用libVLC写了一个流媒体服务器。一切都在努力完成。 我将此参数用于流式传输
#transcode{vcodec=h264}: rtp{mux=ts,dst=239.255.255.239,sdp=sap,name=test"
但我也希望减少流式音频文件的文件大小,让我们说原始文件大小的1/2。 有什么方法可以通过转码参数或其他方式解决这个问题吗?
答案 0 :(得分:0)
其中一个VLC示例包括这些示例转码字符串:
MP4高:
#transcode{vcodec=h264,venc=x264{cfr=40},scale=1,acodec=mp4a,ab=96,channels=2,samplerate=44100}
MP4低:
#transcode{vcodec=theo,venc=theora{quality=9},scale=1,acodec=vorb,ab=160,channels=2,samplerate=44100}
OGG高:
#transcode{vcodec=theo,venc=theora{quality=4},scale=1,acodec=vorb,ab=96,channels=2,samplerate=44100}
OGG Low:
#transcode{vcodec=VP80,vb=2000,scale=1,acodec=vorb,ab=160,channels=2,samplerate=44100}
WEBM High
#transcode{vcodec=VP80,vb=1000,scale=1,acodec=vorb,ab=96,channels=2,samplerate=44100}
WEBM Low
template<class InputIt, class OutputIt, class InputContainer, class UnaryPredicate>
OutputIt move_and_erase_if(InputIt first, InputIt last, InputContainer& c, OutputIt d_first, UnaryPredicate pred)
{
auto dist = std::distance(first, last);
while (first != last)
{
if (pred(*first))
{
*d_first++ = std::move(*first);
first = c.erase(first);
last = std::next(first, --dist);
}
else
{
++first;
--dist;
}
}
return d_first;
}
更改各种参数(如降低比特率)会减小媒体的大小。