라즈베리파이 html 비디오 재생

조회수 168회

html을 사용하여 제 서버에 저장되어있는 mp4 형식의 비디오를 html의 를 사용하여 재생하려고 하였는데 동영상을 재생하는 부분에서 동영상이 인터넷 서버 오류 500이 뜹니다. html 코드는 밑에있습니다. 이렇게 작성하고 라즈베리파이 내에서 로컬 호스트가 아니라 html파일 실행으로 하여 실행한 결과 동영상이 잘 재생됩니다. 그러나 localhost로 실행시키거나 내부 아이피로 실행시키면 동영상이 인터넷 서버 오류 500이 뜹니다. error로그에서는

(8)Exec format error: AH01241: exec of '경로/1 (1).mp4' failed [Tue Jan 08 17:22:14.754942 2019] [cgid:error] [pid 472:tid 1862267952] [client ::1:41334] End of script output before headers: 1 (1).mp4

라고 뜹니다. 로컬호스트나 내부 아이피로 html5를 사용하여 동영상을 재생할 수 없을까요? 권한은 모두 775로 설정했습니다.

<html>
    <head>
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
        <video controls="" autoplay="" name="media">
            <source src="../cgi-bin/myweb/mp4/1%20(1).mp4" type="video/mp4">
        </video>
    </body>
</html>

www
    cgi-bin
        myweb
            file
            mp4
                1%20(1).mp4
    html
        video.html

  • 디렉토리 구조를 좀 올려주세요. 웹루트는 어디이고 mp4 파일은 어디있고 background.jpg 는 어디있고 html 은 어디 있는지. 가급적 모두 절대경로로... 엽토군 2019.1.8 18:35
  • 적었긴 했는데.. 음.. 간단하게.. 저렇게.. 표현해도 될까요? ksj 2019.1.8 18:37
  • 엽토군님하고 질문자님하고 저하고 실시간 채팅을 하고 있는 듯한 기분이네요;; Peter 2019.1.8 18:37
  • 모두 감사합니다 ㅠㅠㅠㅠ ksj 2019.1.8 18:38
  • background.jpg 와 같은 경로에 동영상을 넣으시고 ../../1%20(1).mp4 이렇게 해보심이... Peter 2019.1.8 18:42

2 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    쓰고 계신 웹루트 구조에 문제가 있습니다.

    www/
        cgi-bin/
            myweb/
                file/
                mp4/
                    1%20(1).mp4
        html/
            video.html
    

    http://localhost/video.html 쳤을 때 나오는 페이지는 /www/html/video.html인 거잖아요? 그러면 웹루트는 /www/html입니다. 비디오든 이미지든 무엇이든, 이 디렉토리 밑에 있는 어떤 것이어야만 http://localhost/무엇의 HTTP 요청으로 서빙 가능합니다.

    Background.jpg가 응답이 되는 것은 아마도... 글쎄요 캐시가 먹어서 그러거나... 우연히 지금 돌고 있는 apache가 root로 돌고있어서 root 소유의 모든 디렉토리를 볼수 있어서가 아닌가 싶구요...

    아무튼 이러시면 안 됩니다.

    www/
        html/
            myweb/
                어쩌구 저쩌구...
            video.html
    

    이렇게 해주세요. 혹시 보안 때문에 그러시는 거라면 그건 좀 다른 얘기입니다.

    • 원인은 cgi-bin 폴더 즉 아파치에 파이썬이 작동하는 폴더에 동영상을 넣어서 그런거였습니다... 동영상을 html폴더에 옮기니 잘 되는군요.. 그래도 덕분에 찾았습니다! 감사합니다 ㅠㅠ 정말 감사합니다 ! ksj 2019.1.8 18:45
    • 어쨌든 해결이 되셨다니 다행이네요;; Peter 2019.1.8 18:58
    • 저 혹시..질문 하나만 더 올려도 될까요?? ksj 2019.1.8 19:00
    • 네.. 다만 이 질문에 절대적으로 관련된게 아니라면 새 질문으로 올려주시면 좋겠네요. 엽토군 2019.1.9 14:44
  • html파일을 웹서버를 통해 호스팅하게 되면 웹서버 입장에서 로컬 경로를 알지 못합니다.

    웹서버의 static 경로에 동영상을 올린 뒤 웹서버의 root 로부터의 경로를 지정해주면 정상적으로 재생이 될 것입니다.

    임의로 root 하위에 static/movie 라는 디렉토리에 동영상 파일이 있다고 가정하면 아래와 같이 지정할 수 있습니다.

    ex: <source src="/static/movie/1%20(1).mp4" type="video/mp4">
    
    • 로컬경로로 하지 않았습니다. 현재 서버디렉토리를 www 라고 하고 동영상이 들어있는 디렉토리을 video라고하고 www의 하위 디렉토리로있을때 경로는 /www/video/1%20(1).mp4 형식으로 했습니다. ksj 2019.1.8 18:24
    • 그리고 저 html은 /www 에 있는거구요? 엽토군 2019.1.8 18:26
    • ksj 2019.1.8 18:27
    • webroot가 로컬에 존재하는 www 라는 디렉토리라고 한다면, / 가 root를 의미하기 때문에 /video/1%20(1).mp4 이런식으로 경로를 지정해야 합니다. Peter 2019.1.8 18:27
    • 그 경로는 정확하게 입력했습니다. 경로를 잘못입력하면 404가 뜨지 않나요??? 에러로그의 경로를 보면 해당 동영상파일의 위치와 일치합니다. ksj 2019.1.8 18:28
    • 404는 웹서버 쪽의 문제 없이 접근은 가능한데 접근해 보니 뭣도 없을 때의 오류입니다. 500은 웹서버가 문제가 있는 거고요. 혹시 HTML 안에서 이미지 띄우는건 가능한가요? 사실 그거랑 원리가 똑같거든요. 엽토군 2019.1.8 18:28
    • 이미지는 됩니다. 백그라운드 이미지는 잘 작동하고있는데 같은 원리가 맞지요??.. ksj 2019.1.8 18:29
    • 이미지와 동영상 경로를 같게해서 다시 시도해보겠습니다. ksj 2019.1.8 18:29
    • 디렉토리가 조금 다르긴 하지만 이렇게 요청하고있습니다 background-image:url('../../Background.jpg'); ksj 2019.1.8 18:30
    • 이미지는 상대경로로 지정하셨군요. 404 에러는 동영상 경로랑 상관없이 페이지 경로가 잘못된 경우에 발생합니다. Peter 2019.1.8 18:31
    • / 부터 입력하게 되면 root 부터의 절대경로로 인식됩니다. /video/1%20(1).mp4 으로 지정해도 안된다면 상대경로로 지정해보세요. Peter 2019.1.8 18:32
    • 음 그렇군요 혹시 문제점을 발견한것같은데 아파치에서 cgi모듈 사용으로 지정되는 폴더에 사진 또는 동영상을 넣으면 안되나요? ksj 2019.1.8 18:32
    • 실제로 코드는 이렇게 적었습니다 ksj 2019.1.8 18:33
    • '엇 안뜨네요 ksj 2019.1.8 18:33
    • 질문 수정했습니다 ksj 2019.1.8 18:33
    • 실제코드를 적었습니다 ksj 2019.1.8 18:33
    • 동영상은 cgi-bin/myweb/mp4/1 (1).mp4 로 존재합니다 ksj 2019.1.8 18:34

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.