si volendo potrei usare VLC o qualcosa del genere, ma dove sarebbe il divertimento ??

cmq un pezzo l'ho già fatto.
questo il bean che si connette a carica una lista:
codice:
public class NasFtpBean {

    private static final String HOSTNAME = "";
    private static final String USER = "";
    private static final String PASSWORD = "";

    public ArrayList<String> getFiles() {
        ArrayList<String> list = new ArrayList<>();
        FTPClient ftp = new FTPClient();
        try {
            ftp.connect(HOSTNAME);
            ftp.login(USER, PASSWORD);
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            ftp.changeWorkingDirectory("Volume_1");
            int reply = ftp.getReplyCode();
            if (FTPReply.isPositiveCompletion(reply)) {
                FTPFile[] listFiles = ftp.listFiles();
                for (FTPFile f : listFiles) {
                    if (f.isFile()) {
                        list.add(f.getName());
                    }
                }
            }
        } catch (IOException ex) {
            list.add(ex.getMessage());
        } finally {
            try {
                ftp.logout();
                ftp.disconnect();
            } catch (IOException ex) {
                list.add(ex.getMessage());
            }
        }
        return list;
    }

}
forse non formalmente corretto ma funziona (poi magari lo sistemo meglio).
nella pagina:
codice:
                    <p:dataList value="#{nasFtpBean.files}" var="file" itemType="square">
                        <h:link outcome="video" value="#{file}">
                            <f:param name="videoName" value="#{file}" />
                        </h:link>
                    </p:dataList>
a questo punto mi manca la visualizzazione del video.
nella pagina video.xhtml prendo il nome:
codice:
<f:metadata>
   <f:viewParam name="videoName" value="#{videoBean.videoName}" />
</f:metadata>
#{videoBean.videoName}
e il bean:
codice:
public class VideoBean {

    private String videoName;

    public String getVideoName() {
        return videoName;
    }

    public void setVideoName(String videoName) {
        this.videoName = videoName;
    }

}
a questo punto penso di dover aprire una connessione e stream per visualizzare il video giusto?