如何写一个OGG文件?

时间:2019-03-03 09:57:01

标签: python ogg opus

对于更具体的用例,假设我有一些原始的Opus框架,并且我想使用这些框架中的音频来创建OGG Opus文件。

迄今为止的个人进步:我发现我可以使用绑定到在这里实现的ogg C库::https://github.com/Zuzu-Typ/PyOgg/blob/master/pyogg/ogg.py

按照以下文档尝试实现程序:https://xiph.org/ogg/doc/libogg/encoding.html

import ogg

opus_frames = []
with open("../out.opus", "rb") as ifile:
    while True:
        l = ifile.readline()
        if not l:
            break
        opus_frames.append(l.rstrip())

with open("out.ogg", "wb") as ofile:
    state = ogg.ogg_stream_state()
    ret = ogg.ogg_stream_init(state, 1)
    assert(ret == 0)
    pages = []
    page = ogg.ogg_page()
    for frame in opus_frames:
        packet = ogg.ogg_packet(frame, len(frame))
        ret = ogg.ogg_stream_packetin(state, packet)
        assert(ret == 0)
        ret = ogg.ogg_stream_pageout(state, page)
        if ret != 0:
            pages.append(page)
            page = ogg.ogg_page()
    print(pages[0].body_len)

代码由于类型错误而失败,但是在这一点上,我不确定这是否朝着正确的方向工作。

0 个答案:

没有答案