Pergunta

No iPhone OS 3, a Apple introduziu HTTP Live streaming que deverá permitir streaming de vídeo a partir da internet. Atualmente, estou operando uma webcam, que alimenta o meu servidor, e é então convertido em um fluxo flv por ffmpeg, e transmitido de volta para fora usando ffserver. Alguém sabe como transmitir a configurar um vídeo do iPhone pode usar usando ffmpeg e ffserver? I deve ser capaz de re-codificar em praticamente qualquer formato na mosca.

Foi útil?

Solução

Você vai precisar para construir uma cópia do ffmpeg com uma versão> = e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (git) ou 18793 (SVN). Certifique-se também especificar o sinalizador --enable-libx264 quando você está construindo. Uma vez que você tem que levantar e correr, você pode fazer mais ou menos o seguinte:

ffmpeg -i <input video> -acodec libmp3lame -ac 1 -vcodec libx264 -s 320x240 \
       -level 30 -f mpegts - | \
segmenter - 10 test test.m3u8 http://example.com/path/to/your/files/

i. Traga um arquivo de entrada ou fluxo em ffmpeg e tubulação um vídeo H.264 com áudio MP3 em segmenter da Apple. O segmenter cospe arquivos de vídeo segmentados e playlists M3U apontando para os arquivos segmentados. Você iria servir os arquivos segmentados e playlists através de um servidor web como o Apache.

Obviamente você vai querer ajustar as opções de ffmpeg e segmentador substancialmente para obter os resultados que você está depois.

Outras dicas

Para aqueles que estão interessados ??Eu empacotado um segmenter código aberto com um script que vai deixar você usar o ffmpeg para fazer isso, consulte o meu segmentado streaming no projeto do iphone . Ele pode fazer segmentos multi-taxa de bits para os fluxos de entrada e irá transferir os segmentos de riachos para um destino configurável via scp, ftp e mesmo até AWS S3.

Este é um grande tema de idade, mas o apoio HLS, um aparentemente novo recurso do FFmpeg pode ser útil a alguém.

Um exemplo de uso seria o seguinte:

ffmpeg -i <input_file> -c:v libx264 -preset slow -map 0 -an -flags -global_header -f hls -hls_time <segment_length> <m3u8_file>

Se você gostaria de fazer streaming ao vivo, este seria um outro exemplo:

ffmpeg -i <input_stream> -c:v libx264 -preset ultrafast -map 0 -an -flags -global_header -f hls -hls_time <segment_length> -hls_list_size <playlist_entries> -hls_wrap <wrap> <m3u8_file>

O argumento -hls_list_size limita o número de arquivos na lista de reprodução, eo argumento -hls-wrap limita o número de arquivos no total e vai envolver nomes de arquivos, uma vez que chega a esse ponto (ex: test0.ts, test1.ts ... test7. ts, test0.ts, test1.ts ... quando wrap é 8).

Para obter mais informações, consulte a documentação . Por favor note, os exemplos acima tira áudio com a bandeira -an, como eu, pessoalmente, nunca necessário.

O que há de errado com o uso de QuickTime para converter filmes para o formato "iPhone"? Você só faz File> Export> formato iPhone ... estou faltando alguma coisa?

Depois de converter para o formato do iPhone, eu cortá-la com mediafilesegmenter (encontrado em Apple Developer Connection, Http Ao Vivo Ferramentas ):

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v

(Nota: o folderName / pasta deve existir)

Em seguida, aponte seu iPhone para um site com

<video src='folderName/prog_index.m3u8' height=45 width=70 
       controls='on'>Your browser does not support the video tag</video>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top