[FFmpeg] 스트리밍 비디오 재생

3768 단어

소개



웹어플리케이션에서 받은 동영상을 재생해보았더니 다운로드가 완료된 후에야 재생이 되었습니다.


  • 이번에는 스트리밍 동영상을 다시 재생해 보겠습니다.

    WebM



    사실 저번에 만든 WebM 영상만 가지고 스트리밍을 할 수 있어요.
  • The WebM Project

  • PlayVideo.cshtml




    <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>Play Video</title>
            <meta charset="utf-8">
        </head>
        <body>
            <video controls muted autoplay>
                <!-- Play published static files -->
                <source src="/video/sample.webm" type="video/webm">
            </video>
        </body>
    </html>
    


    Unity 애플리케이션에서 플레이



    또한 "VideoPlayer"를 통해 Unity 애플리케이션에서 재생할 수 있습니다.
    WebM용 특정 비디오 및 오디오 코덱만 재생할 수 있습니다.
  • 비디오 코덱: VP8
  • 오디오 코덱: Vorbis


  • VideoPlayer - Unity Documentation

  • WebM으로 변환



    이를 위해 mp4 파일을 WebM 파일로 변환하고 싶습니다.
    이번에는 FFmpeg를 사용합니다.
  • FFmpeg
  • FFmpeg-Builds - BybN

  • 그것은 옵션으로 비디오 파일을 변환합니다.
    가장 쉬운 방법은 "-lossless 1"을 추가하는 것입니다.

    ffmpeg -i "./wwwroot/video/sample.mp4" -c:a libvorbis -lossless 1 ./wwwroot/video/sample_vp8_mp4_lossless.webm
    


    하지만 변환된 파일 크기는 10배 이상 커집니다.
  • Convert mp4 to webm without quality loss with ffmpeg - Video Production Stack Exchange

  • 그래서 나는

    ffmpeg -i "./wwwroot/video/sample.mp4" -c:v libvpx -c:a libvorbis -crf 10 -b:v 100M -g 300 ./wwwroot/video/sample_vp8_mp4.webm
    


  • -c:v => 비디오 코덱
  • -c:a => 오디오 코덱
  • -crf => 일정한 품질 모드의 경우(범위 4-63)
  • -b:v => 평균 비트 전송률 설정(저는 100MBit/s로 설정).
    이 값을 크게 설정하면 품질이 높아집니다.
    그러나 파일 크기도 커집니다.
  • -g => GOP 크기(30fps에서 초당 10 인트라 프레임 추가)
  • ffmpeg Documentation
  • Encode/VP8 - FFmpeg
  • Encode/VP9 - FFmpeg
  • 좋은 웹페이지 즐겨찾기