2009-07-07 8 views
19

iPhone OS 3에서 Apple은 HTTP Live Streaming을 도입 했으므로 인터넷에서 비디오를 라이브 스트리밍 할 수 있습니다. 현재 웹캠을 작동 중입니다.이 웹캠이 내 서버에 연결되어 ffmpeg에 의해 flv 스트림으로 변환되고 ffserver를 사용하여 다시 스트리밍됩니다. 누구든지 ffmpeg 및 ffserver를 사용하여 iPhone에서 사용할 수있는 비디오 스트림을 설치하는 방법을 알고 있습니까? 난 즉시 모든 형식으로 다시 인코딩 할 수 있어야합니다.HTTP 라이브 스트리밍, FFMPEG & FFSERVER 및 iPhone OS 3

답변

22

버전이 ≥ e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (git) 또는 18793 (svn) 인 ffmpeg 사본을 만들어야합니다. 빌드 할 때 --enable-libx264 플래그도 지정해야합니다. 당신이 일어나서 실행 한 후에는 다음과 같은 대략 수행 할 수 있습니다

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/ 

즉 입력 파일을 가져 오거나 애플의 분할기로는 FFmpeg 및 파이프 MP3 오디오를 가진 H.264 비디오로 스트리밍. 분할기는 세그먼트 화 된 비디오 파일과 세그먼트 화 된 파일을 가리키는 M3U 재생 목록을 출력합니다. Apache와 같은 웹 서버를 통해 세그먼트 화 된 파일과 재생 목록을 제공합니다.

분명히 ffmpeg 및 분할기 옵션을 조정하여 나중에 얻은 결과를 얻을 수 있습니다.

+0

Windows 서버 솔루션은 무엇입니까? – postalservice14

+0

누구나 실제로이 비디오 소스에서 라이브 스트림으로 작업하고 있습니까? 나는 분열 자에게서 오류를 얻으려고 노력하고 있었고 ... –

+0

FFmpeg 버전 SVN-r21627은 오픈 소스 분류기와 함께 작동합니다. http://code.google.com/p/httpsegmenter/ 누구나 해당 버전 이후에 변경된 사항에 대해 알고 있습니까? –

12

내가 관심이있는 분들을 위해 ffmpeg를 사용하게 해주는 스크립트와 함께 오픈 소스 분류기를 번들로 제공했습니다. 내 segmented streaming on the iphone 프로젝트를 참조하십시오. 입력 스트림에 대해 다중 비트 전송률 세그먼트를 수행 할 수 있으며 scp, ftp 및 심지어 aws s3까지 스트림 세그먼트를 구성 가능한 대상으로 전송합니다.

0

QuickTime을 사용하여 동영상을 "iPhone"형식으로 변환하는 것이 잘못된 이유는 무엇입니까? 파일> 내보내기> iPhone 형식 만하면됩니다. 뭔가 빠졌습니까?

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v 

(참고 : 다음 폴더 이름/폴더가 존재해야한다)

그런 다음 웹 사이트에 아이폰을 지적

아이폰 형식으로 변환 한 후, 나는 (Apple Developer Connection, Http Live Streaming Tools에서 발견) mediafilesegmenter와 그것을 잘라

<video src='folderName/prog_index.m3u8' height=45 width=70 
     controls='on'>Your browser does not support the video tag</video> 
+3

모두가 Mac을 사용하지 않으며 Apple 도구는 Mac에서만 작동합니다. – Haqa

+1

@yujean 링크가 작동하지 않습니다. – Brad

3

이것은 꽤 오래된 주제이지만 HLS 지원은 FFmpeg의 새로운 기능인 누군가에게 유용 할 수 있습니다.

로 될 예 사용은 다음과 같습니다

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> 

-hls_list_size 인수는 파일의 수를 제한 : 라이브 스트리밍을하려는 경우

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

, 이것은 또 다른 예가 될 것이다 재생 목록 및 -hls-wrap 인수는 총 파일 수를 제한하며 해당 파일 이름이 도착하면 파일 이름을 줄 바꿈합니다 (예 : test0.ts, test1.ts ... test7.ts, test0.ts, test1.ts ...). 포장이 8 일 때).

자세한 내용은 the documentation을 참조하십시오. 위의 예에서는 개인적으로 필요하지 않으므로 플래그로 오디오를 제거합니다.

+0

완벽한 대답 ... 잘 작동 –

+0

멋지지만 출력 형식이 HLS에 맞지 않습니다. Safari에서 m3u8 파일을 볼 때 "누락 된 플러그인"이 표시됩니까? – Jonny