YouTube에서 사용하는 것과 일치하는 ffmpeg 명령 줄은 무엇입니까?


2

H.264 / MP4 컨테이너에서 YouTube가 품질 등을 위해 사용하는 것과 동일한 명령 줄을 사용하려고합니다. YouTube에서 사용한 동영상과 일치하도록 동영상을 여러 형식, 크기, 크기로 변환하고 비트 전송률 및 오디오 전송률을 조정하는 작업을 해왔습니다.

너트 셸에서 여기에 내가 사용하는 것이 있습니다.

-pix_fmt yuv420p -profile:v baseline -level 3.0 -acodec libfaac -ar 44100 -ac 2 -ab 192k -aspect 16:9 -r 24000/1001 -movflags +faststart

이제 이러한 가치가 왜 그런지 자세히 설명하려면 먼저 YouTube에서 여기에서 무엇을 사용하는지 알려주십시오.

자 자세히 알아 보겠습니다

  1. 파일 앞에있는 moov atom (빠른 시작)
  2. 채널 : 스테레오 또는 스테레오 + 5.1
  3. 샘플링 속도 96khz 또는 48khz
  4. 프로그레시브 스캔 (인터레이스 없음)
  5. 하이 프로파일
  6. 2 개의 연속 B 프레임
  7. 닫힌 GOP. 프레임 속도의 절반 인 GOP
  8. 카바 크
  9. 크로마 서브 샘플링 : 4 : 2 : 0
  10. 프레임 속도
  11. YouTube는 16 : 9 종횡비 플레이어를 사용합니다.
  12. 오디오 코덱 : AAC-LC

ffmpeg의 명령 행에서 이들은 다음과 같습니다.

  1. -movflags +faststart
  2. -ac 2
  3. -ar 48000
  4. 이것에 대한 명령이 무엇인지 확실하지 않습니다. (FFMPEG 기본적으로 인코딩은 점진적입니다.)
  5. -profile:v high -level 4.0
  6. -bf 2 (FFMPEG의 기본값은 16입니다.)
  7. -g 12또는 -g 15YouTube의 FPS에 따라 다릅니다. (기본값 12는 24-25fps에서 작동합니다. NTSC 및 30fps의 경우 15를 선택하십시오. * FFMPEG 옵션 : -g, YouTube의 기본 FPS가 24 또는 30인지 확실하지 않습니다. 기본값 12는 24이므로 프레임 속도의 절반이고 프레임 속도가 30이면 15입니다.)
  8. -coder 1 기본적으로 CABAC는 x264에서 사용하는 엔트로피 인코더입니다.
  9. -pix_fmt yuv420p (제 생각에 모든 사람들이이 필수 사항을 추가해야하거나 FFmpeg 기반이 아닌 모든 플레이어는 YUV 4 : 2 : 2 또는 YUV 4 : 4 : 4의 적절한 디코딩을 지원하지 않으므로 yuv 4 : 2 : 0이 필요합니다.)
  10. -r 24000/1001 YouTube의 기본 프레임 속도는 24라고 가정합니다.
  11. -aspect 16:9
  12. -acodec libfaac

그러나 누군가 내가 도울 수 있다면 내가 누락되었거나 명령이 변경되어야 할 명령이 있다는 것을 알고 있습니다. 그리고 내가 변경 / 추가 해야하는 것을 수정하십시오.

기본 프로필을 사용하고 싶기 때문에 명령 줄에서 CABAC, GOP 또는 B- 프레임을 사용하지 않습니다. 모두 비활성화되고 관련이 없기 때문입니다.


3
1. PHP 소스를 여기에 게시하면 큰 도움이되지 않을 것입니다. 모든 사람이 PHP를 이해하는 것은 아니기 때문에 응답 할 수없는 답변도 알고 있습니다. 베이스 라인에서 4K 인코딩은 엄청나게 바보입니다. 3. 설정하지 마십시오 -aspect. 인코딩이 엉망이됩니다.
Timothy Gu

감사합니다. 위의 코드를 편집하고 $ fcmd를 넣어서 4k 및 2k에서 360p 480 등으로 생성되는 비디오의 각 크기 / 품질에 대한 명령 줄 속성을 제어 할 수 있습니다.
C0nw0nk 2016 년

1
유튜브 링크는 YouTube 에 업로드하기 위해 비디오를 코딩 하는 방법 보여줍니다 . 반드시 그들이 내부적으로 사용 하는 것은 아닙니다 (그리고 나는 이것을 사실로 알고 있습니다). 24 FPS를 원한다면 왜 24000/1001을 사용하고 있습니까?
slhck

내부적으로 어떤 명령 줄을 사용하는지 아무도 모릅니다. 요율을 24로 설정 한 방법을 읽었습니까?
C0nw0nk 2016 년

3
물론 YouTube 사용자는 물론 함께 일하는 연구원 몇 명을 알고 있습니다 (최근 회의에서 한 사람과 이야기했습니다). 또한 youtube-dlGOP, B- 프레임 유형 등과 관련하여 비트 스트림을 직접 사용 하고 분석하는 등 모든 종류의 형식 (타이 그)으로 YouTube에서 MP4를 다운로드 할 수 있습니다 . 실제 질문은 다음과 같습니다. 왜 이러한 설정을 그렇게 밀접하게 일치시키고 싶습니까? 사용 사례는 무엇입니까? (24fps를 원하면 그냥 설정하십시오 -r 24...)
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.