Red5 поток FLV файл - PullRequest
       12

Red5 поток FLV файл

1 голос
/ 23 апреля 2009

Я проверял oflaDemo от Red5. Мне было интересно, как я мог изменить oflaDemo, чтобы я мог передавать определенный файл FLV всем подписчикам ...

/** {@inheritDoc} */
    @Override
    public boolean appConnect(IConnection conn, Object[] params) {
        // Trigger calling of "onBWDone", required for some FLV players
        measureBandwidth(conn);
        if (conn instanceof IStreamCapableConnection) {
            IStreamCapableConnection streamConn = (IStreamCapableConnection) conn;
            SimpleConnectionBWConfig bwConfig = new SimpleConnectionBWConfig();
            bwConfig.getChannelBandwidth()[IBandwidthConfigure.OVERALL_CHANNEL] =
                1024 * 1024;
            bwConfig.getChannelInitialBurst()[IBandwidthConfigure.OVERALL_CHANNEL] =
                128 * 1024;
            streamConn.setBandwidthConfigure(bwConfig);
        }

            serverStream = StreamUtils.createServerStream(appScope, "live0");
            SimplePlayItem item = new SimplePlayItem();
            item.setStart(0);
            item.setLength(10000);
            item.setName("IronMan");
            serverStream.addItem(item);
            item = new SimplePlayItem();
            item.setStart(20000);
            item.setLength(10000);
            item.setName("DarkKnight");
            serverStream.addItem(item);
            serverStream.start();
            serverStream.setRepeat(true);

        return super.appConnect(conn, params);
    }

Результат кода выше - просто пустой экран для всех подписчиков ...

Кто-нибудь из вас имеет представление?

спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 28 августа 2012

У меня такая же проблема. Я обнаружил, что пустой экран из-за какой строки

serverStream.setRepeat(true);

если вы установите повтор в false все работает нормально

UPD: Я думаю, что это ошибка red5. Я сделал взлом, чтобы непрерывно повторять один FLV. Я добавил пользовательский контроллер списка воспроизведения:

public class MyPlayListController implements IPlaylistController {
    @Override
    public int nextItem(IPlaylist playlist, int itemIndex) {
        return 0;
    }

    @Override
    public int previousItem(IPlaylist playlist, int itemIndex) {
        return 0;
    }
}
0 голосов
/ 03 сентября 2010

Это было бы проще осуществить на клиентской стороне, и если вы не хотите жестко кодировать имя потока, вы можете передать его имя в виде флэш-переменной.

...