2009-04-04 7 views
2

내 웹 사이트 용 Youtube와 유사한 시나리오를 구현 중입니다. 동영상을 올리면 모든 사람들이 볼 수 있습니다. 내 질문에 다른 사람들이 원격으로 재생되기 전에 업로드 한 후 비디오를 인코딩해야한다고 생각하지만 인코딩 프로세스가 매우 느립니다 (Microsoft Expression Encoder와 mplayer를 사용해 보았을 때 20 분의 비디오를 인코딩하는 데 약 10 분 소요). 놀랍게도 YouTube에 매우 큰 동영상을 업로드하더라도 다른 사람들이 선택하여 즉시 재생할 수있는 것처럼 보입니다. 인코딩 프로세스가 거의 제로 시간이 걸리는 것처럼 보입니다.파일 업로드 문제

아무도 아이디어가 있으십니까? Youtube는 어떻게 마술처럼 빠르게 프로세스를 인코딩 했습니까? 또는 Youtube가 인코딩 프로세스를 건너 뜁니다. 그러나 인코딩 프로세스를 건너 뛴 경우 YouTube에서 업로드 한 모든 동영상을 재생할 수 있습니다 (예 : 동영상이 비트 전송률, 사진 크기 등과 같은 일부 매개 변수를 따름)? 사전에

덕분에, 조지

+0

이 인코더는 어디에서 실행하고 있습니까? 작은 데스크탑이나 적절한 서버에 있습니까? –

+0

@ S.Lott, 서버에서 실행합니다. 그것은 2 개의 CPU, Windows Server 2003 및 x64 머신, 4G RAM을 가지고 있습니다. 내가 인코딩 한 비디오는 약 80M 입력이며 비디오를 인코딩하는 데 약 40-50 분이 소요됩니다 (비디오의 전체 길이는 약 90 분입니다). 성능 향상을위한 아이디어? – George2

답변

3

유튜브가 너무 수도 도움을 450,000 서버를 사용할 필요, 구글 소유하고 있음을 잊지 마세요!

(약간 우스운, 대답, 나는 고백합니다. 그리고 분명히 YouTube는 모든 이들에 액세스 할 수 없습니다. 그러나이 점은이 문제에 던져 자원의 엄청난 양의해야합니다 남아있다)

+0

@Brian, 동영상 인코딩에는 다소 시간이 걸릴 것입니다. YouTube에서 내 20M 비디오를 수백 조각으로 나누고 수백 대의 기계에 배포하며 각 개별 기계에서 인코딩하고 전체를 결합 할 것이라고 생각하지 않습니다. – George2

+0

(계속) Youtube가 전혀 인코딩하지 않을 수도 있습니다. 그런 정보를 찾지 못했습니다. 아이디어 나 의견이 있으십니까? – George2

+0

YouTube에서 이러한 리소스를 활용하는 방법을 모르겠다. Google은 작업의 세분화 및 병렬화에 대한 전문가이므로 일부 병렬 처리가 발생하지 않으면 놀랄 것입니다. 그러나 어림짐작을 완료하십시오. –

1

을 다른 작업을하기 전에 더 나은 인코더를 사용하십시오. 사용할 수있는 인코더가 많이 있습니다. 일부는 오픈 소스이고 일부는 독점적입니다. 애플은 빠르지 만 비싼 인코더를 가지고있다.

오픈 소스 인코더 기술의 최신 기술은 http://www.ffmpegx.com/입니다. 그들은 다양한 기술 세트를 통합합니다.

+0

@ S.Lott, 나는 ffmpegx로 해봤지만, mplayer가 내부적으로 사용하고 있다고 생각합니다. 내 컴퓨터에서 20 분 인코딩은 10 분이 걸린다. 그래서, 나는 구글이 비슷한 것을 사용하지 않는다고 생각한다. YouTube에서 동영상을 인코딩할지 아니면 전혀 인코딩하지 않을지 (업로드 한 내용 만 재생할 것인지)를 확신 할 수 있습니까? – George2

+0

x264를 강력히 추천합니다. 적절한 설정으로 MPEG4 비디오를 실시간보다 빠르게 인코딩 할 수 있습니다. –

1

또한 하드웨어 인코더는 아마 youtube에서 사용됩니다.

그리고, 재생하는 것보다 인코딩이 빠르면 인코딩하는 동안 재생할 수 있습니까?

+0

@ arane 1. 빠른 H/W 인코더에 대한 모든 참조 사항은 무엇입니까? 2. "인코딩이 빠르다가 재생할 때만 재생할 수 있습니까?"- 경험이 없습니다. 인코딩 과정에서 비디오를 재생하는 방법을 보여주는 참조를 보여줄 수 있습니까? – George2

+0

(계속) 또한 인코딩해야 할시기와 인코딩하지 말아야 할시기에 대한 가이드 라인을 배우고 싶습니다. 실제로, 나는 인코딩의 이점을 보지 못한다 - 인코딩을하지 않고도, 업로드 된 비디오는 여전히 재생 될 수있다. :-) – George2

+0

H/W 인코더의 경우 Google을 가질 수 있습니다. 하지만 어떤 H/W 인코더가 최고인지 전혀 알지 못합니다. 처럼 : http://www.streetwise.com.au/product_info.php?products_id=7061 은 (는) youtube vedio로 인코딩 할 수 있습니다. 두 번째 재생/인코딩 방법의 경우 인코딩 전문가가 아니지만 가능해야한다고 생각합니다. –

1

YouTube는 어떻게 프로세스를 너무 빨리 인코딩합니까? 특정 내부자 지식없이

, 나는 당신이 그것을 업로드로보다는, (1) 여러 인코더로 보낼 짧은 세그먼트로 입력되는 영상을 자르고, (2) 동시에 스트림을 인코딩 기대 시작할 때까지 전체 파일을 업로드 할 때까지 기다리는 중입니다.

또는 유튜브는 완전히

아니, 모든 재생 FLV로 변환해야 인코딩 과정을 건너 뜁니다.

+0

@bobince, 1. 업로드 할 때 동시에 인코딩을 구현하는 방법에 대한 참조 코드 나 문서가 있습니까? 나는이 멋진 아이디어에 대해 더 많은 것을 배우는 데 매우 흥미가있다. – George2

+0

(계속) 2. 비디오를 작은 부분으로 나누고 인코딩하고 다시 어셈블하는 방법에 대한 문서 나 샘플이 있습니까? 나는 분할하는 방법과 분해하는 방법에 대해 매우 혼란 스럽습니다. 왜냐하면 분할/재 조립을 위해 내부 비디오 형식을 분석하고 이해해야한다고 생각하기 때문입니까? – George2

+0

요청 본문은 사용자가 사용하고있는 상위 프레임 워크/언어의 양식 분석기로 남겨 두지 않고 직접 처리해야합니다. 그런 다음 ffmpeg의 libavformat과 같은 것을 사용하여 스트림을 demux하고 형식에서 허용하는 독립 패킷을 분리합니다. – bobince