libVLC - 转码参数

时间:2015-08-21 14:28:02

标签: vlc libvlc

我用libVLC写了一个流媒体服务器。一切都在努力完成。 我将此参数用于流式传输

#transcode{vcodec=h264}: rtp{mux=ts,dst=239.255.255.239,sdp=sap,name=test"

但我也希望减少流式音频文件的文件大小,让我们说原始文件大小的1/2。 有什么方法可以通过转码参数或其他方式解决这个问题吗?

1 个答案:

答案 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;
}

更改各种参数(如降低比特率)会减小媒体的大小。