질문/조언질답게시판
Extra Form
PHP PHP 7.4
CMS Rhymix 1.x

질문게시판에 제 글이 도배되는 것같아서 죄송합니다.

업로드된 mp4동영상 자동재생이 되지 않아서 이것 저것 살펴보고 있는데요

ffmpeg 버전이 ffmpeg version 3.4.8-0ubuntu0.2인데.. 4.X가 아니라서 안나오는 걸까요?

그리고 phpinfo.php 만들어서 확인해보니까

목록중에 ffmpeg이 없네요.. 혹시 이거랑 관련 있을까요?

뭘 더 설치해 줘야할지 전혀 모르겠습니다 ㅠㅠㅠ

  • profile
    관리자 페이지 -> 파일 -> 파일 업로드 설정 -> GIF로 취급 항목의 초수를 늘려보세요.
  • profile
    https://snsdstagram.com/Freeboard/179089 테스트 용입니다.
  • profile ?
    60초로 하고 다시 새로 업로드 했는데 안되네요..
  • ? profile
    어떤파일인지요.

    파일에 형태나 자료에따라 틀리거나 ffmpeg 설정이 안되어있따던가 여러가지 요인이 있을 수 있겠습니다.

    보통은 라이믹스 최신버전 기준, 업로드시 바로 본문에 자동재생되는 gif형태로 업로드되는게 정상입니다.
  • profile ?

     

    같은 파일을 여기 타운에 올렸는데 잘 나오네요. 제 라이믹스 버전은 1.9.9.9입니당

    관리자 모드 > 파일설정 >ffmpeg 경로는 이렇게 해줬습니다.

    스크린샷 2021-01-09 오후 7.14.15.png

    설치는 sudo apt install ffmpeg 해서 설치하고 다른거 해준건 없어용..

    최근에 php7.4로 업그레이드 했구 그 이전엔 동영상을 올려본 적이 없어서 그땐 됐는지는 모르겠습니다.

    업그레이드시 확장모듈 설치할때 ffmpeg은 7.2 확장모듈 목록에 안 보여서 업그레이드 할때 설치한 것은 없습니다. 

     

  • ? profile
    usr/bin 폴더내에 ffmpeg랑 ffprobe 파일이 있나요? 함 확인하심이...
  • profile ?

    스크린샷 2021-01-09 오후 7.37.42.png

     

     

    넵 말씀듣고 찾아봤는데 있네요... 왜.. 작동을 안할까요 ㅠ

     

  • ? profile
    사이트주소를 남기셔서 확인을 받으시는게 좋을것같아요. 단서가 없으니 댓글이 안달리는것같아 보여유.
    사이트주소 남기시는게 마음에 좀 걸리시면 고수님들께 쪽지라도 남기셔서 확인을 받으시는건 어떠신지요
  • ? profile
    url언제 주실수있으신가요?
  • profile ?

    https://10000lab.net/best_topic/7276

    앗..이런 아래글에만 주소를 남겼었네요..

    이 글에도 주소 남긴것으로 착각했습니다ㅠ

  • profile ?
    넵...주소를 여기에 남긴줄 알았는데 아래 질문글에만 남겼었네요..
  • ? profile
    테스트계정이 없으면 확인이 어렵겟는데요,
  • ? profile
    근데 마지막 첨부파일은 정상적으로 오토플레이 되네요
  • profile ?
    마지막 것은 gif파일을 올렸을때 mp4로 변환된거에요. 그건 잘 되더라구요.. 테스트 계정 만들고 다시 댓글 달겠습니다.
  • profile ?
    test
    test123
    https://10000lab.net/free
    여기에 테스트 해주실 수 있을까요..
  • ? profile
    방금 첨부해보려다가 에디터 도구모음을 볼수 없게 되어있던데요.
    html 사용을 못하게 해 놓으신건가요? 이게 문제가 되는건 아닌지 그리고 만들어진 소스 자체를 못보니 원인 파악에 어려움이 있을 겁니다. html 사용 가능하게 그리고 소스보기 전환을 할 수 있게 도구모음이 보이도록 하셔야 할 듯 합니다.
  • profile ?

    게시판에 개별설정이 들어가 있었네요..;; 다시 했습니다.

  • ? profile
    첨부해 봤습니다. 지금 플레이관련 소스가 전혀 추가가 안되고 있습니다. 문제가 있는게 확인이 되었는데 이게 동영상 시간 자체를 분석하지 못해서 그런건지 원인은 디버깅을 하실 수 있는 분들이 해주셔야 겠네요. 기존에 제가 말씀 드린 서버의 프로그램이 연동이 안되는 건지 등의 이유...
  • profile ?

    디버그 설정에서 디버그 모두에게 표시로 하면 도움이 될까요? 

    모두에게 표시로 했습니당

  • ? profile
    아니요. 코드를 알아야 디버깅 프린트 코드를 심을텐데 저 같은 경우는 코어 코드를 몰라 도움을 못드리구요. 디버그 설정만 해서 될 건 아니고 체크 포인트를 아는 사람이 디버그 코드를 심어야 합니다.
  • profile ?
    그렇군요.. 이건 2.0버전으로 업그레이드 하면 해결될 문제는 아닌거겠죠..? 그래도 버전을 한번 바꿔볼까요?
  • profile
    기본 ckeditor에서 플러그인 로드에 대한 에러가 있는것 같습니다.

    기본 코어를 다시 한번 덮어 씌어보시고 불필요한 플러그인을 에디터 설정에서 제거해주시는것이 좋겠습니다.

    관련 설정은 XETown에 ckeditor 플러그인 이라고 검색해보시면 정보들이 좀 있습니다.
  • profile ?
    넵 덮어쓰기 해보겠습니다.
    근데 제가 그.. git으로 첨에 설치하고 업데이트를 해왔었는데 덮어 쓰기도 git으로 할 수있나요?
    파일질라 같은 걸로 하면 퍼미션때문에 업로드 안되는 파일들이 좀 있더라구요..
    퍼미션 설정할 줄도 모르구요 흑흑
  • ? profile
    퍼미션 문제일수도....

    파일과 폴더 소유자 권한도 확인해보세요.

    https://www.google.com/search?ei=26D5X8jmLfqVr7wPt4ySwAk&q=chown+chmod&oq=chown+chmod&gs_lcp=CgZwc3ktYWIQAzICCAAyAggAMgIIADICCAAyAggAMgQIABAeMgQIABAeMgQIABAeMgYIABAKEB4yBAgAEB46BAgAEEc6BAgAEENQ7QhYuRdg2hhoAnACeACAAX-IAeMFkgEDMC42mAEAoAEBqgEHZ3dzLXdpesgBAsABAQ&sclient=psy-ab&ved=0ahUKEwiIwIS27I7uAhX6yosBHTeGBJgQ4dUDCA0&uact=5
  • ? profile
    퍼미션 오류가 있다는건 파일마다 퍼미션 설정을 잘못하셨다고 보여지고요.

    그런경우 파일질라에 로그인한 계정으로 깃을 조작한다 하더라도 퍼미션에러는 똑같이 발생됩니다.

    말씀하신게 퍼미션 에러가 아니거나 무시해도 되는 에러일 수 있으니 그건 냅두고.. 깃은 명령어부터 차근차근 배우셔야합니다. 하나하나 알려주기엔 너무방대하고 사이트마다 대응법도 살짝식 다릅니다..ㅎㅎ
  • profile profile
    깃으로 코어 업로드하면 퍼미션무시하고 업로드가 되나요? 저는 파일질라로만 해봐서...모릅니다.ㅎㅎ
    저 분은 파일 업로드중 일부가 누락 된다는것같은데
  • profile profile
    이미 설치된 파일중에 계정 그룹설정이나 혹은 파일의 퍼미션에 따라 권한을 부여받지 못하는 경우도 있습니다.

    근데 보통은 파일의 계쩡그룹의 의해 패스되는경우가 많고요 일반 퍼미션은 문제 없습니다.
  • profile ?
    ㅠㅠ 진짜 어렵네요.
    개념이 서 있지 않으니까 혼란스럽습니다ㅋㅋ
    덮어쓰기가 첫번째 미션인데 해결하고 오겠습니다. 답변 달아주신 분들 정말 감사합니다.
  • profile
    ffmpeg 실행 권한이 php에게 없어서 문제가 될 수도 있다고 합니다. 더 자세한 설명은 서버를 잘 아시는 분께서.....
  • profile ?
    타운에서 관련해서 검색했는데 gif->mp4변환은 권한문제로 안되셨던 분들 있었더라구요.. 저는 그건 변환되고 자동재생까지 잘되는데 mp4로 업로드한 파일만 자동재생은 안되는 경우가 문제됐던 적은 없었던거 같네요;

    람보님 말씀대로 소유권 변경해서 퍼미션 문제 해결하구 덮어썼더니 파일자체가 이제 안 올라가서 백업복구했습니다 ㅠ
    꼭 해결하고 후기 남겨야겠어요ㅋㅋ 승부욕생기네요
    감사합니다!
  • ? profile
    ffprobe 를 검색해보시면 동영상정보를 확인하는 용도로 사용하는 것으로 나옵니다. 지금 php에서 이파일의 실행 권한이 없어 동영상의 재생시간 정보가 확인되지 않는 것으로 보입니다. 왜냐면 설정된 시간 보다 짧은 경우만 해당 소스가 추가되도록 라이믹스에서 코딩이 되었습니다.

    그런데 이 ffprobe 를 실행하지 못한다면 소용이 없겠죠.

    말씀하신 인코딩 작업은 되는게 ffmpeg 는 실행 권한이 있는 듯 합니다.
  • profile ?

    스크린샷 2021-01-09 오후 11.33.21.png.jpg

    이 댓글을 참조해서 적용을 해보았습니다.

    저는 웹 소유자 이름이 달라서 그것만 변경하고 권한을 변경했는데 권한은 변경됐지만 변화는 없네요

  • ? profile
    서버에 관한 내용은 잘 몰라 어떻게 하라고 말씀은 못드리지만 지금 증상은 동영상의 재생시간 정보를 선 확인하는 작업이 이루어지지 않고 있다는 결과적 현상입니다.

    라이믹스가 ffprobe 를 실행해서 결과값을 받을 수 있게 할 수 있는지에 관해 확인할 필요가 있다는 생각만 드네요.
    지금 사용하시는 웹서버가 아파치를 사용하는지도 정보가 없고 저렇게 하는게 맞는지도 모르겠습니다. 저는 서버 지식이 없어서요.

    ffprobe 소유권을 변경을 하셨다는 것을 읽히는데 잘 모르겠네요.
  • profile ?
    넵. 동일한 증상이였던 선례가 없어서 해결하기 힘들지만, 좀 더 알아 보려구 합니다.
    질문에 관심가져 주셔서 감사드립니다.
  • profile

    디버그 모드를 켜시고 디버그 파일에 기록을 체크하시고 / 디버그 정보 표시 내용 도 체크

    /modules/file/file.controller.php 의 아래 와 같은 코드를 찾으시고

    // MP4
    if ($file_info['extension'] === 'mp4')
    {
    // Treat as GIF
    if ($config->video_mp4_gif_time && $file_info['duration'] <= $config->video_mp4_gif_time && empty($stream_info['audio']))
    {
    $file_info['original_type'] = 'image/gif';
    }
    }

    위 코드에 디버그출력 코드를 심습니다.



    // MP4
    if ($file_info['extension'] === 'mp4')
    {
    // Treat as GIF
    debugPrint('test');
    debugPrint($file_info['duration']);

    if ($config->video_mp4_gif_time && $file_info['duration'] <= $config->video_mp4_gif_time && empty($stream_info['audio']))
    {
    $file_info['original_type'] = 'image/gif';
    }
    }

     

    mp4 동영상을 업로드 한 후


    files/debug/YYYYMMDD.php 디버그기록 파일을 열어서 확인해 봅니다.
    test 를 검색하셔서 바로 아래 에 디버그 정보에 나오는 값이 동영상 재생시간입니다.

    이 값이 나온다면 최소한 서버에서 동영상 재생시간 검출은 되는 겁니다. 이 것이 확인된다면 다음 문제 확인을 위한 진행을 할 수 있습니다.

  • profile ?

    Debug Entries
    =============
    01. '\'test\''
        - modules/file/file.controller.php line 1296
        - modules/file/file.controller.php line 901
        - modules/file/file.controller.php line 141
        - classes/module/ModuleObject.class.php line 600
        - classes/module/ModuleHandler.class.php line 816
        - index.php line 52
    02. '1'
        - modules/file/file.controller.php line 1297
        - modules/file/file.controller.php line 901
        - modules/file/file.controller.php line 141
        - classes/module/ModuleObject.class.php line 600
        - classes/module/ModuleHandler.class.php line 816
        - index.php line 52

     

    1초짜리 영상올렸는데 재생시간이 1이라고 나오네요

  • ? profile
    네. 그럼 이제 서버의 ffprobe 사용에 관한 의심은 안하셔도 되겠습니다.
    왜 소스에 자동재생 관련 소스가 안들어가는지에 관해서 알아보시면 되겠습니다.
  • profile ?
    넵~ 퍼미션 문제가 아니였군요..디버그 코드 심는거 처음 해봤습니다 감사합니다
    자동재생 관련 소스는 아까 말씀해주신 /modules/file/file.controller.php에서 관여 하는건가요?
  • ? profile

    소스는 파일업로드 관련 js 에서 합니다. 지금 디버깅 한 부분은 파일 업로드 부분입니다. mp4 업로드시 분석하고 하는 부분이었었습니다. 분석 후 에디터에 소스를 자동으로 넣어주는건 파일업로드 관련 js 에서 합니다.

     

    https://github.com/rhymix/rhymix/blob/master/common/js/plugins/jquery.fileupload/js/main.js

    위 파일에서 담당할 겁니다.

     

     

     

    https://github.com/rhymix/rhymix/blob/master/common/js/plugins/jquery.fileupload/js/main.js#L357-L358

     

    이부분에서 조건이 맞으면 자동재생 소스를 넣어주네요.

  • profile
    ffmpeg ffprobe 파일은 원래 권한인 root.root 여도 상관없을거에요. 단 퍼미션은 755로 되어 있으면 충분할꺼에요.
  • profile ?
    네 퍼미션 해봤는데 안되고 있어요...
  • ? profile
    관련 문제가 아니니 그곳을 조치해봐야 해결이 안되는거죠. 제가 위에 달아드린 디버그의 결과로서 확인 되었습니다.
  • profile
    오래전에 지금 말씀하신 동영상 자동재생 관련 동작의 버그가 있었습니다.

    그것을 고친 패치입니다.
    https://github.com/rhymix/rhymix/commit/86c96a6ea8551f8a934a96628e9b1142ec7ba143

    혹시 패치전의 소스를 가지고 있는지 한번 확인도 해보세요. 물론 지금 오래된 버전에 있으시면서 안된다고 하지는 않으시겠지만요.
  • profile ?


    // Set original type if the file is converted
    $args->original_type = null;
    if($file_info['converted'])
    {
    $args->original_type = $file_info['original_type'];
    }

    이렇게 되어있는데

    // Set original type
    $args->original_type = null;
    if($file_info['type'] !== $file_info['original_type'])
    {
    $args->original_type = $file_info['original_type'];
    }
    이게 최신인건가요? 1.9.9.9 버전 다운로드 받은 파일도 위에꺼 처럼 되어 있었어요..
    헐 됩니다!!!!!!!!!!!!!!!!!!!

    웹지기님 정말 감사해요 ㅠㅠㅠㅠㅠㅠㅠㅠ

    됩니다 다시 해보니까 되요! ㅠㅠㅠㅠㅠㅠㅠㅠ 이틀동안 정말  감사합니다 ㅠㅠㅠ

  • profile ?
    덕분에 디버그 하는 것도 배우고 문제해결도 하구..정말 감사합니다.
    와 너무 기쁘네요!! 정말 감사합니다 ><
  • ? profile
    저도 확인해봤는데
    https://github.com/rhymix/rhymix/blob/1.9.9.9/modules/file/file.controller.php#L941

    1.9.9.9 이후에 패치된 것 같습니다.
    저는 서드파티를 사용해서 해당 증상을 경험할 수 없어서 어느버전에서 해결된지 몰랐네요.

    그런데 저 패치만으로 안된다면 또다른 문제가 있는지 확인이 필요하겠네요.
    2.0 에서는 저는 잘 됩니다.
  • profile ?

    말씀해주신 코드만 패치 버전으로 바꾸었는데 너무 잘됩니다.
    2.0으로 가서 안된다면 이 글을 다시 참고해서 확인해야겠네요!

    2.0 업데이트했을때 git으로 해봤는데 동영상 자동재생은 안되었거든요..

    정말 감사드립니다!

  • ? profile

    아니요. 저게 2.0 에서 패치된 거로 배포된거라 1.9.9.9에서 안되는거고 2.0에서 안되는건 이상한 일입니다.
    기존의 영상이 자동으로 되는게 아니고 새로 업로드해야 적용되는거에요.

  • profile ?
    어랏..이상하네요.. 어제 2.0.4로 잠깐 업데이트 했다가 복구했는데 그때는 분명히 자동재생이 되지 않았거든요..
    다시 업데이트해서 확인해 봐야겠네요.
  • ? profile
    기억에 오류가 있으실거에요. 방금전에도 잘 안된다고 하셨잖아요? 아마 기존 업로드된 게시글 보고 판단하셨을 수 있습니다. 2.0.4 잘 됩니다. 걱정 안하셔도 됩니다. 그부분은 코드가 바뀌지 않았어요.
  • profile ?
    맞아요.. 정신이 없긴했습니다. 해결이 되어서 정말 기쁘네요! 오류 나면 뭐부터 해야할지 몰라서 난감한데 도와주셔서 감사합니다. 많이 배우네요!