Recherche avancée

Médias (91)

Autres articles (99)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

  • Activation de l’inscription des visiteurs

    12 avril 2011, par

    Il est également possible d’activer l’inscription des visiteurs ce qui permettra à tout un chacun d’ouvrir soit même un compte sur le canal en question dans le cadre de projets ouverts par exemple.
    Pour ce faire, il suffit d’aller dans l’espace de configuration du site en choisissant le sous menus "Gestion des utilisateurs". Le premier formulaire visible correspond à cette fonctionnalité.
    Par défaut, MediaSPIP a créé lors de son initialisation un élément de menu dans le menu du haut de la page menant (...)

Sur d’autres sites (8974)

  • .mp4 file is not playing in Django template and FireFox or Chrome

    9 février 2021, par Himanshu sharma

    I can save live RTSP video stream in .mp4 but when I run saved .mp4 video in Django template or Firefox or Chrome browser or VLC, video is not playing in ubuntu.
I think I have a compatible issue problem in .mp4. Furthermore, I want to show and play .mp4 saved file in Django.

    


    I have a two IP camera which provides a live RTSP video stream.

    


    self.input_stream---> rtsp://admin:Admin123@192.168.1.208/user=admin_password=Admin123_channel=0channel_number_stream=0.sdp

self.input_stream---> rtsp://Admin:@192.168.1.209/user=Admin_password=_channel=0channel_number_stream=0.sdp


    


    Python 3.8.5 (default, Jul 28 2020, 12:59:40)
[GCC 9.3.0] on linux,

    


    Django==3.1.2

    


    I am implementing this code in difference Ubuntu PCs

    


    Ubuntu = 18.04 and 20.04

    


    opencv-contrib-python==4.4.0.46

    


    opencv-python==4.4.0.46

    


    ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)

    


    I had tried different fourcc to save .mp4 but below fourcc work perfectly in Ubuntu.

    


    fourcc = cv2.VideoWriter_fourcc(*'mp4v')

    


    class ffmpegStratStreaming(threading.Thread):
    def __init__(self, input_stream=None, output_stream=None, camera=None, *args, **kwargs):
        self.input_stream = input_stream
        self.output_stream = output_stream
        self.camera = camera
        super().__init__(*args, **kwargs)

    def run(self):
        try:vs = cv2.VideoCapture(self.input_stream)
            fps_rate = int(vs.get(cv2.CAP_PROP_FPS))
            ##############################
            ##############################  
            # ~ print('fps rate-->', fps_rate,'camera id-->' ,str(self.camera.id))
            # ~ vs.set(cv2.CAP_PROP_POS_FRAMES,50)  #Set the frame number to be obtained
            # ~ print('fps rate-->', fps_rate,'camera id-->' ,str(self.camera.id),' ####### ')
            
            # initialize the video writer (we'll instantiate later if need be)
            writer = None

            # initialize the frame dimensions (we'll set them as soon as we read
            # the first frame from the video)
            W = None
            H = None    
            # start the frames per second throughput estimator
            fps = FPS().start()

            #  saving frame in avi video format
            video_file_count = 0
            start_time = time.time()

            while True:
                try:
                    # grab the next frame and handle if we are reading from either
                    # VideoCapture or VideoStream
                    
                    frame_init = vs.read()
                    frame = frame_init[1] if self.input_stream else frame_init
                    
                    # if frame is can't read correctly ret is False
                    while frame_init[0] == False:
                        print("Can't receive frame. Retrying ...")
                        vs.release()
                        vs = cv2.VideoCapture(self.input_stream)                                                                              
                        frame_init = vs.read()
                        frame = frame_init[1] if self.input_stream else frame_init

                    # if we are viewing a video and we did not grab a frame then we
                    # have reached the end of the video
                    if self.input_stream is not None and frame is None:
                        break

                    # resize the frame to have a maximum width of 500 pixels (the
                    # less data we have, the faster we can process it), then convert
                    # the frame from BGR to RGB for dlib
                    frame = imutils.resize(frame, width=500)        
                    
                    
                    #<---------------------- Start of  writing a video to disk ------------------------->                   
                    minute = 1
                    second  = 60
                    minite_to_save_video = int(minute) * int(second)

                
                    # if we are supposed to be writing a video to disk, initialize
                    if time.time() - start_time >= minite_to_save_video or  video_file_count == 0 :
                        ## where H = heigth, W = width, C = channel 
                        H, W, C = frame.shape
                        video_file_count += 1
                        start_time = time.time()
                        output_save_directory = self.output_stream+str(video_file_count)+'.mp4'
                        # fourcc = cv2.VideoWriter_fourcc(*"MJPG")
                        # fourcc = cv2.VideoWriter_fourcc(*'XVID')
                        # fourcc = cv2.VideoWriter_fourcc(*'X264')
                        # fourcc = cv2.VideoWriter_fourcc(*'MP4V')

                        
                        # fourcc = cv2.VideoWriter_fourcc(*'FMP4')

                        # fourcc = cv2.VideoWriter_fourcc(*'avc1')


                        # fourcc = cv2.VideoWriter_fourcc('M','J','P','G')

                        fourcc = cv2.VideoWriter_fourcc(*'mp4v')
                        # fourcc = cv2.VideoWriter_fourcc(*'mp3v')
                        # fourcc = 0x00000021
                        print(fourcc, type(fourcc),'ffffffff')
                        # a = int(vs.get(cv2.CAP_PROP_FOURCC))
                        # print(a,type(a),'  aaaaaaaa' )

                        # writer = skvideo.io.FFmpegWriter(output_save_directory, outputdict={
                        #   '-vcodec': 'libx264', '-b': '300000000'
                        # })
                        
                        # writer = skvideo.io.FFmpegWriter(self.output_stream, outputdict={'-r': '120', '-c:v': 'libx264', '-crf': '0', '-preset': 'ultrafast', '-pix_fmt': 'yuv444p'})
                        
                        writer = cv2.VideoWriter(output_save_directory, fourcc ,20.0,( int(W), int(H) ), True)
                        
                        
                        # ~ The cv2.VideoWriter requires five parameters:    

                    # check to see if we should write the frame to disk
                    if writer is not None:                          
                        try:
                            writer.write(frame)
                        except Exception as e:
                            print('Error in writing video output---> ', e)
                            
                    #<---------------------- end of  writing a video to disk ------------------------->

                    # show the output frame
                    # cv2.imshow("Frame", frame)
                    # key = cv2.waitKey(1) & 0xFF

                    # if the `q` key was pressed, break from the loop
                    # if key == ord("q"):
                    #   break

                    # increment the total number of frames processed thus far and
                    # then update the FPS counter
                    totalFrames += 1
                    fps.update()
                except Exception as e:
                    print('Error in main while loop--> ', e)

            # stop the timer and display FPS information
            fps.stop()

            # check to see if we need to release the video writer pointer
            # if writer is not None:
            #   writer.release()

            # if we are not using a video file, stop the camera video stream
            # if not self.input_stream:
            #   vs.stop()

            # otherwise, release the video file pointer
            # else:
            #   vs.release()

            # close any open windows
            # cv2.destroyAllWindows()
        except Exception as e:
            print(e, '333333333333333333333333333')


    


    My Django template code

    


    {% block main %}&#xA;<div class="row">&#xA;  {% if folders|length == 0 %}&#xA;    <div class="col-md-12 text-center">&#xA;      <h6 class="card-title">There are no files in this directory.</h6>&#xA;    </div>&#xA;  {% else %}&#xA;    {% for folder in folders %}&#xA;      <div class="col-md-3 text-center">&#xA;          <div class="card-block">&#xA;            <video class="video-js vjs-fluid vjs-default-skin" controls="controls" preload="auto" muted="muted" data-setup="&#x27;{" true="true"></video>&#xA;                <source src="{% get_media_prefix %}camera-feed/video-saved/{{pk}}/{{parent}}/{{folder}}" type="video/mp4">&#xA;            &#xA;            <h6 class="card-title">{{folder}}</h6>&#xA;          </source></div>&#xA;      </div>&#xA;    {% endfor %}&#xA;  {% endif %}&#xA;</div>&#xA;{% endblock %}&#xA;

    &#xA;

    Function in view.py to see saved .mp4 video in Django template. Video is saved at local folder.

    &#xA;

    def CameraVideos(request, pk, folder):&#xA;    dirpath = settings.MEDIA_ROOT &#x2B; &#x27;/camera-feed/video-saved/&#x27; &#x2B; str(pk) &#x2B; &#x27;/&#x27; &#x2B; folder&#xA;    folders = sorted(Path(dirpath).iterdir(), key=os.path.getmtime)&#xA;    data = []&#xA;    for file in folders:&#xA;        if not file.name.startswith(&#x27;.&#x27;):&#xA;            data.append(file.name)&#xA;    return render(request, "home/camera_video.html", {&#x27;folders&#x27;: data, &#x27;pk&#x27;: pk, &#x27;parent&#x27;: folder})&#xA;

    &#xA;

  • FFmpeg stream stops after a certain time

    7 avril 2021, par Anarno

    We have a little Nodejs app, which starts a stream process, with a child_process.spawn. On the client-side, we have an HTML5-canvas element, which records the video data new MediaRecorder(canvas.captureStream(30), config), then this client sends its data to our Nodejs server over a WebSocket connection. We using FFmpeg for video encoding and decoding, then we send the data to our 3-rd party service (MUX), which accepts the stream and broadcasts them. Sadly the process continuously loses its fps, and after in general 1 minute, stops with an interesting error code. (when we save the video result locally instead of streaming via rtmps, it works perfectly.

    &#xA;

    *The whole system is in docker.

    &#xA;

    The error :

    &#xA;

     stderr: [tls @ 0x7f998e7bca40] Error in the pull function.&#xA;Our_app_logs:    | av_interleaved_write_frame(): I/O error    &#xA;Our_app_logs:    | [flv @ 0x7f998eeb1680] Failed to update header with correct duration.&#xA;Our_app_logs:    | [flv @ 0x7f998eeb1680] Failed to update header with correct filesize.&#xA;Our_app_logs:    | Error writing trailer of rtmps://global-live.mux.com/app/94e85197-78a3-f092-3437-03d93aba74e0: I/O error&#xA;Our_app_logs:    |  <buffer 5b="5b" 74="74" 6c="6c" 73="73" 20="20" 40="40" 30="30" 78="78" 37="37" 66="66" 39="39" 38="38" 65="65" 62="62" 63="63" 61="61" 34="34" 5d="5d" 45="45" 72="72" 6f="6f" 69="69" 6e="6e" 68="68" 70="70" 75="75" 2e="2e">&#xA;Our_app_logs:    | stderr: frame= 1478 fps= 25 q=23.0 Lsize=  &#xA;   402kB time=00:01:02.89 bitrate=  52.4kbits/s speed=1.05x&#xA;Our_app_logs:    | video:369kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.034639%&#xA;Our_app_logs:    |  <buffer 66="66" 72="72" 61="61" 6d="6d" 65="65" 3d="3d" 20="20" 31="31" 34="34" 37="37" 38="38" 70="70" 73="73" 32="32" 35="35" 71="71" 33="33" 2e="2e" 30="30" 4c="4c" 69="69" 7a="7a" 6b="6b" 42="42" 74="74">&#xA;Our_app_logs:    | stderr: [tls @ 0x7f998e7bca40]  <buffer 5b="5b" 6c="6c" 73="73" 20="20" 40="40" 30="30" 78="78" 37="37" 66="66" 39="39" 38="38" 65="65" 62="62" 63="63" 61="61" 34="34" 5d="5d">    &#xA;Our_app_logs:    | stderr: The specified session has been invalidated for some reason.&#xA;Our_app_logs:    |  <buffer 54="54" 68="68" 65="65" 20="20" 73="73" 70="70" 63="63" 69="69" 66="66" 64="64" 6f="6f" 6e="6e" 61="61" 62="62" 76="76" 6c="6c" 74="74" 72="72" 6d="6d">&#xA;Our_app_logs:    | stderr:     Last message repeated 1 times  &#xA;Our_app_logs:    |  <buffer 20="20" 4c="4c" 61="61" 73="73" 74="74" 6d="6d" 65="65" 67="67" 72="72" 70="70" 64="64" 31="31" 69="69" 0a="0a">  &#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: frame I:13    Avg QP: 5.39  size:  &#xA;2478&#xA;Our_app_logs:    |  <buffer 66="66" 72="72" 61="61" 6d="6d" 65="65" 20="20" 49="49" 3a="3a" 31="31" 33="33" 41="41" 76="76" 67="67" 51="51" 50="50" 35="35" 2e="2e" 39="39" 73="73" 69="69" 7a="7a" 32="32" 34="34" 37="37" 38="38" 0a="0a">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: frame P:1465  Avg QP:13.51  size:  &#xA; 235&#xA;Our_app_logs:    |  <buffer 66="66" 72="72" 61="61" 6d="6d" 65="65" 20="20" 50="50" 3a="3a" 31="31" 34="34" 36="36" 35="35" 41="41" 76="76" 67="67" 51="51" 33="33" 2e="2e" 73="73" 69="69" 7a="7a" 32="32" 0a="0a">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: mb I  I16..4: 99.2%  0.1%  0.7%    &#xA;Our_app_logs:    |  <buffer 6d="6d" 62="62" 20="20" 49="49" 31="31" 36="36" 2e="2e" 34="34" 3a="3a" 39="39" 32="32" 25="25" 30="30" 37="37" 0a="0a">        &#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: mb P  I16..4:  0.3%  0.0%  0.0%  P16..4:  0.1%  0.0%  0.0%  0.0%  0.0%    skip:99.6%&#xA;Our_app_logs:    |  <buffer 6d="6d" 62="62" 20="20" 50="50" 49="49" 31="31" 36="36" 2e="2e" 34="34" 3a="3a" 30="30" 33="33" 25="25">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: 8x8 transform intra:0.3% inter:17.3%&#xA;Our_app_logs:    |  <buffer 38="38" 78="78" 20="20" 74="74" 72="72" 61="61" 6e="6e" 73="73" 66="66" 6f="6f" 6d="6d" 69="69" 3a="3a" 30="30" 2e="2e" 33="33" 25="25" 65="65" 31="31" 37="37" 0a="0a">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: coded y,uvDC,uvAC intra: 1.4% 6.9% &#xA;4.7% inter: 0.0% 0.0% 0.0%&#xA;Our_app_logs:    |  <buffer 63="63" 6f="6f" 64="64" 65="65" 20="20" 79="79" 2c="2c" 75="75" 76="76" 44="44" 43="43" 41="41" 69="69" 6e="6e" 74="74" 72="72" 61="61" 3a="3a" 31="31" 2e="2e" 34="34" 25="25" 36="36" 39="39" 37="37" 30="30">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: i16 v,h,dc,p: 90%  5%  5%  0%&#xA;Our_app_logs:    |  <buffer 69="69" 31="31" 36="36" 20="20" 76="76" 2c="2c" 68="68" 64="64" 63="63" 70="70" 3a="3a" 39="39" 30="30" 25="25" 35="35" 0a="0a">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% &#xA;18% 51%  6%  0%  0%  0%  0%  3%&#xA;Our_app_logs:    |  <buffer 69="69" 38="38" 20="20" 76="76" 2c="2c" 68="68" 64="64" 63="63" 6c="6c" 72="72" 75="75" 3a="3a" 32="32" 33="33" 25="25" 31="31" 35="35" 36="36" 30="30">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% &#xA;25% 40%  0%  0%  0%  0%  0%  0%&#xA;Our_app_logs:    |  <buffer 69="69" 34="34" 20="20" 76="76" 2c="2c" 68="68" 64="64" 63="63" 6c="6c" 72="72" 75="75" 3a="3a" 33="33" 25="25" 32="32" 35="35" 30="30">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: i8c dc,h,v,p: 86%  7%  6%  0%&#xA;Our_app_logs:    |  <buffer 69="69" 38="38" 63="63" 20="20" 64="64" 2c="2c" 68="68" 76="76" 70="70" 3a="3a" 36="36" 25="25" 37="37" 30="30" 0a="0a">&#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: Weighted P-Frames: Y:0.1% UV:0.1%  &#xA;Our_app_logs:    |  <buffer 57="57" 65="65" 69="69" 67="67" 68="68" 74="74" 64="64" 20="20" 50="50" 2d="2d" 46="46" 72="72" 61="61" 6d="6d" 73="73" 3a="3a" 59="59" 30="30" 2e="2e" 31="31" 25="25" 55="55" 56="56" 0a="0a">  &#xA;Our_app_logs:    | stderr: [libx264 @ 0x7f998e790080]  <buffer 5b="5b" 6c="6c" 69="69" 62="62" 78="78" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 37="37" 66="66" 39="39" 38="38" 65="65" 5d="5d">&#xA;Our_app_logs:    | stderr: kb/s:2041.23&#xA;Our_app_logs:    |  <buffer 6b="6b" 62="62" 2f="2f" 73="73" 3a="3a" 32="32" 30="30" 34="34" 31="31" 2e="2e" 33="33" 0a="0a">&#xA;Our_app_logs:    | stderr: Conversion failed!&#xA;Our_app_logs:    |  <buffer 43="43" 6f="6f" 6e="6e" 76="76" 65="65" 72="72" 73="73" 69="69" 20="20" 66="66" 61="61" 6c="6c" 64="64" 21="21" 0a="0a">&#xA;Our_app_logs:    | close, code: 1, signal: null&#xA;Our_app_logs:    | from react application: 14203&#xA;Our_app_logs:    | Status ok...&#xA;Our_app_logs:    | Data ok...&#xA;Our_app_logs:    | FFmpeg ok...&#xA;Our_app_logs:    | Writeable ok... <buffer c4="c4" 81="81" 0e="0e" 11="11" 00="00" 01="01" 61="61" c7="c7" 80="80" 5b="5b" b6="b6" 72="72" 03="03" bc="bc" b7="b7" de="de" 59="59" 7f="7f" 3c="3c" 27="27" b3="b3" 87="87" b2="b2" e6="e6" 84="84" d0="d0" f0="f0" 02="02" 2d="2d" c0="c0" 08="08" 70="70"> undefined&#xA;Our_app_logs:    | stderr: ffmpeg version 4.2.4 Copyright (c) &#xA;2000-2020 the FFmpeg developers&#xA;Our_app_logs:    |   built with gcc 9.2.0 (Alpine 9.2.0)&#xA;Our_app_logs:    |   configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --disable-debug&#xA;Our_app_logs:    |  <buffer 66="66" 6d="6d" 70="70" 65="65" 67="67" 20="20" 76="76" 72="72" 73="73" 69="69" 6f="6f" 6e="6e" 34="34" 2e="2e" 32="32" 43="43" 79="79" 68="68" 74="74" 28="28" 63="63" 29="29" 30="30" 2d="2d" 46="46">&#xA;Our_app_logs:    | stderr:   libavutil      56. 31.100 / 56. 31.100&#xA;Our_app_logs:    |   libavcodec     58. 54.100 / 58. 54.100   &#xA;Our_app_logs:    |   libavformat    58. 29.100 / 58. 29.100&#xA;Our_app_logs:    |   libavdevice    58.  8.100 / 58.  8.100&#xA;Our_app_logs:    |   libavfilter     7. 57.100 /  7. 57.100&#xA;Our_app_logs:    |   libavresample   4.  0.  0 /  4.  0.  0   &#xA;Our_app_logs:    |   libswscale      5.  5.100 /  5.  5.100   &#xA;Our_app_logs:    |   libswresample   3.  5.100 /  3.  5.100   &#xA;Our_app_logs:    |   libpostproc    55.  5.100 / 55.  5.100   &#xA;Our_app_logs:    |  <buffer 20="20" 6c="6c" 69="69" 62="62" 61="61" 76="76" 75="75" 74="74" 35="35" 36="36" 2e="2e" 33="33" 31="31" 30="30" 2f="2f" 0a="0a" 63="63" 6f="6f">&#xA;Our_app_logs:    | stderr: [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    |     Last message repeated 4 times&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    |  <buffer 5b="5b" 68="68" 32="32" 36="36" 34="34" 20="20" 40="40" 30="30" 78="78" 37="37" 66="66" 39="39" 5d="5d" 6e="6e" 6f="6f" 2d="2d" 65="65" 69="69" 73="73" 74="74" 67="67" 50="50" 53="53" 31="31" 72="72">&#xA;Our_app_logs:    | stderr: [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    |     Last message repeated 5 times&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_headerOur_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] non-existing PPS 14 referenced&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] decode_slice_header error&#xA;Our_app_logs:    | [h264 @ 0x7f299f44f600] no frame!&#xA;&#xA;</buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer></buffer>

    &#xA;

    The FFmpeg config :

    &#xA;

    const FFMPEG_CONFIG = [&#xA;  &#x27;-i&#x27;,&#xA;  &#x27;-&#x27;,&#xA;&#xA;  // video codec config: low latency, adaptive bitrate&#xA;  //   &#x27;-vcodec&#x27;,&#xA;  //   &#x27;copy&#x27;,&#xA;  &#x27;-c:v&#x27;,&#xA;  &#x27;libx264&#x27;,&#xA;  &#x27;-preset&#x27;,&#xA;  &#x27;veryfast&#x27;,&#xA;  &#x27;-tune&#x27;,&#xA;  &#x27;zerolatency&#x27;,&#xA;&#xA;  // audio codec config: sampling frequency (11025, 22050, 44100), bitrate 64 kbits&#xA;  &#x27;-c:a&#x27;,&#xA;  &#x27;aac&#x27;,&#xA;  &#x27;-ar&#x27;,&#xA;  &#x27;44100&#x27;,&#xA;  &#x27;-b:a&#x27;,&#xA;  &#x27;64k&#x27;,&#xA;&#xA;  //force to overwrite&#xA;  &#x27;-y&#x27;,&#xA;&#xA;  // used for audio sync&#xA;  &#x27;-use_wallclock_as_timestamps&#x27;,&#xA;  &#x27;1&#x27;,&#xA;  &#x27;-async&#x27;,&#xA;  &#x27;1&#x27;,&#xA;&#xA;  //&#x27;-filter_complex&#x27;, &#x27;aresample=44100&#x27;, // resample audio to 44100Hz, needed if input is not 44100&#xA;  //&#x27;-strict&#x27;, &#x27;experimental&#x27;,&#xA;  &#x27;-bufsize&#x27;,&#xA;  &#x27;1000&#x27;,&#xA;  &#x27;-f&#x27;,&#xA;  &#x27;flv&#x27;,&#xA;];&#xA;

    &#xA;

    The process :

    &#xA;

    const process = child_process.spawn(&#x27;ffmpeg&#x27;, [&#xA;      ...FFMPEG_CONFIG,&#xA;      //   &#x27;local.bin&#x27;,&#xA;      url,&#xA;    ]);&#xA; &#xA;    process.stderr.on(&#x27;data&#x27;, data => {&#xA;      console.log(`stderr: ${data}`, data);&#xA;    });&#xA;&#xA;    process.stdin.on(&#x27;error&#x27;, e => {&#xA;      console.log(&#x27;FFmpeg STDIN Error&#x27;, e);&#xA;    });&#xA;&#xA;    process.on(&#x27;error&#x27;, err => console.log(err));&#xA;&#xA;    process.on(&#x27;close&#x27;, (code, signal) => {&#xA;      console.log(`close, code: ${code}, signal: ${signal}`);&#xA;    });&#xA;

    &#xA;

    The writing :

    &#xA;

    if (!Buffer.isBuffer(data)) return;&#xA;if (!process.stdin.writable) return;&#xA;process.stdin.write(data);&#xA;

    &#xA;

  • Why X.Org's X Server has stopped working on Google Colab ?

    20 février 2021, par Rahul

    I am Using X server for the virtual screen on Google Colab and capturing that screen with ffmpeg to record it and live stream it to twitch. (for the reinforcement learning project)

    &#xA;

    &#xA;

    The above process was completely working till my last use of my Colab notebook (on mid-January 2021), but now (on 19th February 2021) I am using the same notebook and the streaming code has stopped working.

    &#xA;

    &#xA;

    I am adding config and log file data below. (I have never seen these files before because it was working, now it's not so I don't have any idea what wrong)

    &#xA;

    The config file stored at /etc/X11/xorg.conf have the following data :

    &#xA;

    # nvidia-xconfig: X configuration file generated by nvidia-xconfig&#xA;# nvidia-xconfig:  version 418.67&#xA;&#xA;Section "ServerLayout"&#xA;    Identifier     "Layout0"&#xA;    Screen      0  "Screen0"&#xA;    InputDevice    "Keyboard0" "CoreKeyboard"&#xA;    InputDevice    "Mouse0" "CorePointer"&#xA;EndSection&#xA;&#xA;Section "Files"&#xA;EndSection&#xA;&#xA;Section "InputDevice"&#xA;    # generated from default&#xA;    Identifier     "Mouse0"&#xA;    Driver         "mouse"&#xA;    Option         "Protocol" "auto"&#xA;    Option         "Device" "/dev/mouse"&#xA;    Option         "Emulate3Buttons" "no"&#xA;    Option         "ZAxisMapping" "4 5"&#xA;EndSection&#xA;&#xA;Section "InputDevice"&#xA;    # generated from default&#xA;    Identifier     "Keyboard0"&#xA;    Driver         "kbd"&#xA;EndSection&#xA;&#xA;Section "Monitor"&#xA;    Identifier     "Monitor0"&#xA;    VendorName     "Unknown"&#xA;    ModelName      "Unknown"&#xA;    HorizSync       28.0 - 33.0&#xA;    VertRefresh     43.0 - 72.0&#xA;    Option         "DPMS"&#xA;EndSection&#xA;&#xA;Section "Device"&#xA;    Identifier     "Device0"&#xA;    Driver         "nvidia"&#xA;    VendorName     "NVIDIA Corporation"&#xA;    BoardName      "Tesla T4"&#xA;    BusID          "PCI:0:4:0"&#xA;    MatchSeat      "seat-1"&#xA;EndSection&#xA;&#xA;Section "Screen"&#xA;    Identifier     "Screen0"&#xA;    Device         "Device0"&#xA;    Monitor        "Monitor0"&#xA;    DefaultDepth    24&#xA;    Option         "AllowEmptyInitialConfiguration" "True"&#xA;    SubSection     "Display"&#xA;        Virtual     1920 1080&#xA;        Depth       24&#xA;    EndSubSection&#xA;EndSection&#xA;

    &#xA;

    The log file stored at /var/log/Xorg.0.log have the following data :

    &#xA;

    [   464.605] &#xA;X.Org X Server 1.19.6&#xA;Release Date: 2017-12-20&#xA;[   464.605] X Protocol Version 11, Revision 0&#xA;[   464.605] Build Operating System: Linux 4.15.0-124-generic x86_64 Ubuntu&#xA;[   464.605] Current Operating System: Linux 9d3fe3949671 4.19.112&#x2B; #1 SMP Thu Jul 23 08:00:38 PDT 2020 x86_64&#xA;[   464.605] Kernel command line: BOOT_IMAGE=/syslinux/vmlinuz.A init=/usr/lib/systemd/systemd boot=local rootwait ro noresume noswap loglevel=7 noinitrd console=ttyS0 security=apparmor virtio_net.napi_tx=1 systemd.unified_cgroup_hierarchy=false systemd.legacy_systemd_cgroup_controller=false csm.disabled=1 dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm_verity.dev_wait=1 i915.modeset=1 cros_efi loadpin.enabled=0 root=/dev/dm-0 "dm=1 vroot none ro 1,0 4077568 verity payload=PARTUUID=555BDB75-CBD7-CD4A-B24E-29B13D7AC0DF hashtree=PARTUUID=555BDB75-CBD7-CD4A-B24E-29B13D7AC0DF hashstart=4077568 alg=sha256 root_hexdigest=42104d547ac104fb7061529e78f53e4f3e8c3d3cbb040dc6e0f84aad68491347 salt=9dc7f3acc4e2ce65be16356e960c2b21b51a917fa31d2e891fd295490c991e41" mitigations=off&#xA;[   464.605] Build Date: 30 November 2020  08:01:56PM&#xA;[   464.605] xorg-server 2:1.19.6-1ubuntu4.8 (For technical support please see http://www.ubuntu.com/support) &#xA;[   464.605] Current version of pixman: 0.34.0&#xA;[   464.605]    Before reporting problems, check http://wiki.x.org&#xA;    to make sure that you have the latest version.&#xA;[   464.605] Markers: (--) probed, (**) from config file, (==) default setting,&#xA;    (&#x2B;&#x2B;) from command line, (!!) notice, (II) informational,&#xA;    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.&#xA;[   464.605] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Feb 20 03:10:44 2021&#xA;[   464.606] (==) Using config file: "/etc/X11/xorg.conf"&#xA;[   464.606] (==) Using system config directory "/usr/share/X11/xorg.conf.d"&#xA;[   464.607] (==) ServerLayout "Layout0"&#xA;[   464.607] (**) |-->Screen "Screen0" (0)&#xA;[   464.607] (**) |   |-->Monitor "Monitor0"&#xA;[   464.607] (**) |   |-->Device "Device0"&#xA;[   464.607] (**) |-->Input Device "Keyboard0"&#xA;[   464.607] (**) |-->Input Device "Mouse0"&#xA;[   464.607] (==) Automatically adding devices&#xA;[   464.607] (==) Automatically enabling devices&#xA;[   464.607] (==) Automatically adding GPU devices&#xA;[   464.607] (==) Automatically binding GPU devices&#xA;[   464.607] (==) Max clients allowed: 256, resource mask: 0x1fffff&#xA;[   464.607] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.&#xA;[   464.607]    Entry deleted from font path.&#xA;[   464.607] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.&#xA;[   464.607]    Entry deleted from font path.&#xA;[   464.607] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.&#xA;[   464.607]    Entry deleted from font path.&#xA;[   464.607] (WW) The directory "/usr/share/fonts/X11/Type1" does not exist.&#xA;[   464.607]    Entry deleted from font path.&#xA;[   464.607] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.&#xA;[   464.607]    Entry deleted from font path.&#xA;[   464.607] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.&#xA;[   464.607]    Entry deleted from font path.&#xA;[   464.607] (==) FontPath set to:&#xA;    /usr/share/fonts/X11/misc,&#xA;    built-ins&#xA;[   464.607] (==) ModulePath set to "/usr/lib/xorg/modules"&#xA;[   464.607] (WW) Hotplugging is on, devices using drivers &#x27;kbd&#x27;, &#x27;mouse&#x27; or &#x27;vmmouse&#x27; will be disabled.&#xA;[   464.607] (WW) Disabling Keyboard0&#xA;[   464.607] (WW) Disabling Mouse0&#xA;[   464.607] (II) Loader magic: 0x556eb77b8020&#xA;[   464.607] (II) Module ABI versions:&#xA;[   464.607]    X.Org ANSI C Emulation: 0.4&#xA;[   464.607]    X.Org Video Driver: 23.0&#xA;[   464.607]    X.Org XInput driver : 24.1&#xA;[   464.607]    X.Org Server Extension : 10.0&#xA;[   464.607] (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound (Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory)&#xA;[   464.609] (--) PCI: (0:0:4:0) 10de:1eb8:10de:12a2 rev 161, Mem @ 0xc0000000/16777216, 0x380000000/268435456, 0x390000000/33554432&#xA;[   464.609] (II) no primary bus or device found&#xA;[   464.609] (II) LoadModule: "glx"&#xA;[   464.609] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so&#xA;[   464.610] (II) Module glx: vendor="X.Org Foundation"&#xA;[   464.610]    compiled for 1.19.6, module version = 1.0.0&#xA;[   464.610]    ABI class: X.Org Server Extension, version 10.0&#xA;[   464.610] (II) LoadModule: "nvidia"&#xA;[   464.610] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so&#xA;[   464.610] (II) Module nvidia: vendor="NVIDIA Corporation"&#xA;[   464.610]    compiled for 4.0.2, module version = 1.0.0&#xA;[   464.610]    Module class: X.Org Video Driver&#xA;[   464.610] (II) NVIDIA dlloader X Driver  418.67  Sat Apr  6 02:51:17 CDT 2019&#xA;[   464.610] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs&#xA;[   464.610] xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)&#xA;[   464.610] (II) Loading sub module "fb"&#xA;[   464.610] (II) LoadModule: "fb"&#xA;[   464.611] (II) Loading /usr/lib/xorg/modules/libfb.so&#xA;[   464.611] (II) Module fb: vendor="X.Org Foundation"&#xA;[   464.611]    compiled for 1.19.6, module version = 1.0.0&#xA;[   464.611]    ABI class: X.Org ANSI C Emulation, version 0.4&#xA;[   464.611] (II) Loading sub module "wfb"&#xA;[   464.611] (II) LoadModule: "wfb"&#xA;[   464.611] (II) Loading /usr/lib/xorg/modules/libwfb.so&#xA;[   464.611] (II) Module wfb: vendor="X.Org Foundation"&#xA;[   464.611]    compiled for 1.19.6, module version = 1.0.0&#xA;[   464.611]    ABI class: X.Org ANSI C Emulation, version 0.4&#xA;[   464.611] (II) Loading sub module "ramdac"&#xA;[   464.611] (II) LoadModule: "ramdac"&#xA;[   464.611] (II) Module "ramdac" already built-in&#xA;[   464.637] (EE) NVIDIA: Failed to initialize the NVIDIA kernel module. Please see the&#xA;[   464.637] (EE) NVIDIA:     system&#x27;s kernel log for additional error messages and&#xA;[   464.637] (EE) NVIDIA:     consult the NVIDIA README for details.&#xA;[   464.662] (EE) NVIDIA: Failed to initialize the NVIDIA kernel module. Please see the&#xA;[   464.662] (EE) NVIDIA:     system&#x27;s kernel log for additional error messages and&#xA;[   464.662] (EE) NVIDIA:     consult the NVIDIA README for details.&#xA;[   464.662] (EE) No devices detected.&#xA;[   464.662] (==) Matched modesetting as autoconfigured driver 0&#xA;[   464.662] (==) Matched fbdev as autoconfigured driver 1&#xA;[   464.662] (==) Matched vesa as autoconfigured driver 2&#xA;[   464.662] (==) Assigned the driver to the xf86ConfigLayout&#xA;[   464.662] (II) LoadModule: "modesetting"&#xA;[   464.662] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so&#xA;[   464.663] (II) Module modesetting: vendor="X.Org Foundation"&#xA;[   464.663]    compiled for 1.19.6, module version = 1.19.6&#xA;[   464.663]    Module class: X.Org Video Driver&#xA;[   464.663]    ABI class: X.Org Video Driver, version 23.0&#xA;[   464.663] (II) LoadModule: "fbdev"&#xA;[   464.663] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so&#xA;[   464.663] (II) Module fbdev: vendor="X.Org Foundation"&#xA;[   464.663]    compiled for 1.19.3, module version = 0.4.4&#xA;[   464.663]    Module class: X.Org Video Driver&#xA;[   464.663]    ABI class: X.Org Video Driver, version 23.0&#xA;[   464.663] (II) LoadModule: "vesa"&#xA;[   464.663] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so&#xA;[   464.663] (II) Module vesa: vendor="X.Org Foundation"&#xA;[   464.663]    compiled for 1.19.3, module version = 2.3.4&#xA;[   464.663]    Module class: X.Org Video Driver&#xA;[   464.663]    ABI class: X.Org Video Driver, version 23.0&#xA;[   464.663] (II) NVIDIA dlloader X Driver  418.67  Sat Apr  6 02:51:17 CDT 2019&#xA;[   464.663] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs&#xA;[   464.663] (II) modesetting: Driver for Modesetting Kernel Drivers: kms&#xA;[   464.663] (II) FBDEV: driver for framebuffer: fbdev&#xA;[   464.663] (II) VESA: driver for VESA chipsets: vesa&#xA;[   464.663] xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)&#xA;[   464.663] (EE) open /dev/dri/card0: No such file or directory&#xA;[   464.663] (WW) Falling back to old probe method for modesetting&#xA;[   464.663] (EE) open /dev/dri/card0: No such file or directory&#xA;[   464.663] (WW) Falling back to old probe method for fbdev&#xA;[   464.663] (II) Loading sub module "fbdevhw"&#xA;[   464.663] (II) LoadModule: "fbdevhw"&#xA;[   464.663] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so&#xA;[   464.663] (II) Module fbdevhw: vendor="X.Org Foundation"&#xA;[   464.663]    compiled for 1.19.6, module version = 0.0.2&#xA;[   464.663]    ABI class: X.Org Video Driver, version 23.0&#xA;[   464.664] (EE) open /dev/fb0: No such file or directory&#xA;[   464.664] (WW) Falling back to old probe method for vesa&#xA;[   464.664] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support&#xA;[   464.664] (EE) Screen 0 deleted because of no matching config section.&#xA;[   464.664] (II) UnloadModule: "modesetting"&#xA;[   464.664] (EE) Device(s) detected, but none match those in the config file.&#xA;[   464.664] (EE) &#xA;Fatal server error:&#xA;[   464.664] (EE) no screens found(EE) &#xA;[   464.664] (EE) &#xA;Please consult the The X.Org Foundation support &#xA;     at http://wiki.x.org&#xA; for help. &#xA;[   464.664] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.&#xA;[   464.664] (EE) &#xA;[   464.664] (EE) Server terminated with error (1). Closing log file.&#xA;&#xA;

    &#xA;

    I am using this github repo to setup the video-streamer

    &#xA;

    If anyone wants the colab notebook for the example then I will add it over here.

    &#xA;

    For this problem I am really not sure where to file an issue for this so that's why I am writing this here.

    &#xA;