Recherche avancée

Médias (0)

Mot : - Tags -/protocoles

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (88)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • 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 (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (12212)

  • Accessing RTSP Server hosted on AWS over internet

    27 juillet 2018, par Kishor V

    I am trying to access my EC2 Ubuntu instance from AWS using gaminganywhere (gaminganywhere.org). The security group policy is to allow all connections, but couldn’t connect to the server. Here is the log from the client and server.

    Client

    # [7860] 1522686205.894230 # include: config/common/controller.conf
    # [7860] 1522686205.894569 # include: config/common/video-x264.conf
    # [7860] 1522686205.894755 # include: config/common/audio-lame.conf
    # [7860] 1522686205.895002 # RTSP[config]: using 'udp' for RTP flows.
    # [7860] 1522686205.895012 # RTSP[config]: controller port = 8555
    # [7860] 1522686205.895016 # RTSP[config]: controller via 'udp' protocol.
    # [7860] 1522686205.895058 # RTSP[config]: video-encoder = libx264 (libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
    # [7860] 1522686205.895071 # RTSP[config]: audio-encoder = libmp3lame (libmp3lame MP3 (MPEG audio layer 3))
    # [7860] 1522686205.895101 # RTSP[config]: video specific option: threads = auto
    Remote server @ 18.188.161.135[18.188.161.135]:8554
    # [7860] 1522686205.971505 SDL: prefer opengl hardware renderer.
    # [7860] 1522686205.971532 controller queue: initialized size=32708 (481 units)
    # [7860] 1522686205.971693 controller socket: socket address [18.188.161.135:8555]
    # [7860] 1522686205.971727 controller client-thread started: tid=7863.
    watchdog: launched, waiting for audio/video frames ...
    # [7860] 1522686205.971813 rtspclient: max tolerable video delay disabled.
    *** SAVEFILE: YUV image saved to 'NULL'; timestamp saved to 'NULL'.
    RTP reordering threshold = 300000
    # [7860] 1522686205.971959 qos-measurement: initialized.
    Opening connection to 18.188.161.135, port 8554...
    ...remote connection opened
    Sending request: DESCRIBE rtsp://18.188.161.135:8554/desktop RTSP/1.0
    CSeq: 2
    User-Agent: RTSP Client (LIVE555 Streaming Media v2014.05.27)
    Accept: application/sdp


    Received 619 new bytes of response data.
    Received a complete DESCRIBE response:
    RTSP/1.0 200 OK
    CSeq: 2
    Date: Mon, Apr 02 2018 16:23:26 GMT
    Content-Base: rtsp://10.0.0.73:8554/desktop/
    Content-Type: application/sdp
    Content-Length: 456

    v=0
    o=- 1522685876960515 1 IN IP4 10.0.0.73
    s=GamingAnywhere Server
    i=desktop
    t=0 0
    a=tool:LIVE555 Streaming Media v2014.05.27
    a=type:broadcast
    a=control:*
    a=range:npt=0-
    a=x-qt-text-nam:GamingAnywhere Server
    a=x-qt-text-inf:desktop
    m=video 0 RTP/AVP 96
    c=IN IP4 0.0.0.0
    b=AS:3000
    a=rtpmap:96 H264/90000
    a=fmtp:96 packetization-mode=1;profile-level-id=4D4020;sprop-parameter-sets=Z01AILaAUAIGhAAAAwAEAAADAMI8YMqA,aO88gA==
    a=control:track1

    [URL:"rtsp://10.0.0.73:8554/desktop/"]: Got a SDP description:
    v=0
    o=- 1522685876960515 1 IN IP4 10.0.0.73
    s=GamingAnywhere Server
    i=desktop
    t=0 0
    a=tool:LIVE555 Streaming Media v2014.05.27
    a=type:broadcast
    a=control:*
    a=range:npt=0-
    a=x-qt-text-nam:GamingAnywhere Server
    a=x-qt-text-inf:desktop
    m=video 0 RTP/AVP 96
    c=IN IP4 0.0.0.0
    b=AS:3000
    a=rtpmap:96 H264/90000
    a=fmtp:96 packetization-mode=1;profile-level-id=4D4020;sprop-parameter-sets=Z01AILaAUAIGhAAAAwAEAAADAMI8YMqA,aO88gA==
    a=control:track1

    # [7860] 1522686206.581278 qos-measurement: source #0 added, prefix=-281002320
    video decoder: use decoder h264
    video decoder(0): sprop configured with 'Z01AILaAUAIGhAAAAwAEAAADAMI8YMqA,aO88gA==', decoded-size=36
    SPROP = [ 00 00 00 01 67 4d 40 20 b6 80 50 02 06 84 00 00 03 00 04 00 00 03 00 c2 3c 60 ca 80 00 00 00 01 68 ef 3c 80 ]
    video decoder(0): codec h264 (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
    video decoder(0) initialized (client port 44578)
    [URL:"rtsp://10.0.0.73:8554/desktop/"]: Initiated the "video/H264" subsession (client ports 44578-44579)
    Sending request: SETUP rtsp://10.0.0.73:8554/desktop/track1 RTSP/1.0
    CSeq: 3
    User-Agent: RTSP Client (LIVE555 Streaming Media v2014.05.27)
    Transport: RTP/AVP;unicast;client_port=44578-44579


    Received 212 new bytes of response data.
    Received a complete SETUP response:
    RTSP/1.0 200 OK
    CSeq: 3
    Date: Mon, Apr 02 2018 16:23:26 GMT
    Transport: RTP/AVP;unicast;destination=117.206.20.30;source=10.0.0.73;client_port=44578-44579;server_port=6970-6971
    Session: CBA2E074;timeout=65


    [URL:"rtsp://10.0.0.73:8554/desktop/"]: Set up the "video/H264" subsession (client ports 44578-44579)
    [URL:"rtsp://10.0.0.73:8554/desktop/"]: Created a data sink for the "video/H264" subsession
    Receiver buffer increased to 2097152
    NAT hole punching: fd=11, local-port=44578/44578 server-port=6970
    Sending request: PLAY rtsp://10.0.0.73:8554/desktop/ RTSP/1.0
    CSeq: 4
    User-Agent: RTSP Client (LIVE555 Streaming Media v2014.05.27)
    Session: CBA2E074
    Range: npt=0.000-


    watchdog: initialized, but no frames received ...
    Received 184 new bytes of response data.
    Received a complete PLAY response:
    RTSP/1.0 200 OK
    CSeq: 4
    Date: Mon, Apr 02 2018 16:23:27 GMT
    Range: npt=0.000-
    Session: CBA2E074
    RTP-Info: url=rtsp://10.0.0.73:8554/desktop/track1;seq=32456;rtptime=2677630715


    [URL:"rtsp://10.0.0.73:8554/desktop/"]: Started playing session...
    watchdog: initialized, but no frames received ...
    watchdog: initialized, but no frames received ...
    watchdog: initialized, but no frames received ...
    watchdog: initialized, but no frames received ...
    watchdog: initialized, but no frames received ...
    watchdog: initialized, but no frames received ...

    Server

    # [4432] 1522685876.873593 # include: config/common/server-common.conf
    # [4432] 1522685876.873731 # include: config/common/controller.conf
    # [4432] 1522685876.873810 # include: config/common/video-x264.conf
    # [4432] 1522685876.873882 # include: config/common/video-x264-param.conf
    # [4432] 1522685876.873974 # include: config/common/audio-lame.conf
    # [4432] 1522685876.874060 # RTSP[config]: using 'udp' for RTP flows.
    # [4432] 1522685876.874100 # RTSP[config]: controller port = 8555
    # [4432] 1522685876.874131 # RTSP[config]: controller via 'udp' protocol.
    # [4432] 1522685876.874189 # RTSP[config]: video-encoder = libx264 (libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
    # [4432] 1522685876.874230 # RTSP[config]: audio-encoder = libmp3lame (libmp3lame MP3 (MPEG audio layer 3))
    # [4432] 1522685876.874281 # RTSP[config]: video specific option: b = 3000000
    # [4432] 1522685876.874316 # RTSP[config]: video specific option: g = 48
    # [4432] 1522685876.874348 # RTSP[config]: video specific option: intra-refresh = 1
    # [4432] 1522685876.874378 # RTSP[config]: video specific option: me_method = dia
    # [4432] 1522685876.874410 # RTSP[config]: video specific option: me_range = 16
    # [4432] 1522685876.874440 # RTSP[config]: video specific option: preset = faster
    # [4432] 1522685876.874471 # RTSP[config]: video specific option: profile = main
    # [4432] 1522685876.874501 # RTSP[config]: video specific option: refs = 1
    # [4432] 1522685876.874532 # RTSP[config]: video specific option: slices = 4
    # [4432] 1522685876.874563 # RTSP[config]: video specific option: threads = 4
    # [4432] 1522685876.874594 # RTSP[config]: video specific option: tune = zerolatency
    # [4432] 1522685876.874625 *** Crop disabled.
    # [4432] 1522685876.878908 sink server: live555-rtsp-server registered
    # [4432] 1522685876.878957 key-blocking initialized: 0+0 keys blocked.
    # [4432] 1522685876.879015 sdl_replayer: sizeof(sdlmsg) = 64
    # [4432] 1522685876.879465 sdl replayer: Replay using XTest (version 2.2) for display :0 screen 0, size=1280x1024.
    # [4432] 1522685876.879793 XShm extention version 1.2 with shared pixmaps
    # [4432] 1522685876.879832 X-Window-init: dimension: 1280x1024x8 @ 0/1
    # [4432] 1522685876.879917 dpipe: 'video-0' initialized, 8 frames, framesize = 16384092
    # [4432] 1522685876.913130 video-source: video-0 initialized max-curr-out = (2560x1600)-(1280x1024)-(1280x1024)
    # [4432] 1522685876.914241 Frame converter created: from (1280,1024)[30] -> (1280,1024)[0]
    # [4432] 1522685876.914343 dpipe: 'filter-0' initialized, 8 frames, framesize = 16384092
    # [4432] 1522685876.948463 video encoder: video source #0 from 'filter-0' (1280x1024).
    # [4432] 1522685876.948720 vencoder-init: option b = 3000000
    # [4432] 1522685876.948755 vencoder-init: option g = 48
    # [4432] 1522685876.948783 vencoder-init: option intra-refresh = 1
    # [4432] 1522685876.948811 vencoder-init: option me_method = dia
    # [4432] 1522685876.948839 vencoder-init: option me_range = 16
    # [4432] 1522685876.948867 vencoder-init: option preset = faster
    # [4432] 1522685876.948894 vencoder-init: option profile = main
    # [4432] 1522685876.948921 vencoder-init: option refs = 1
    # [4432] 1522685876.948949 vencoder-init: option slices = 4
    # [4432] 1522685876.948977 vencoder-init: option threads = 4
    # [4432] 1522685876.949004 vencoder-init: option tune = zerolatency
    [libx264 @ 0x9518b40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
    [libx264 @ 0x9518b40] profile Main, level 3.2
    [libx264 @ 0x9518b40] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=dia subme=4 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=48 keyint_min=4 scenecut=40 intra_refresh=1 rc=abr mbtree=0 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    # [4432] 1522685876.958913 video encoder: initialized.
    # [4432] 1522685876.959008 video encoder: ffmpeg-video-encoder registered
    # [4432] 1522685876.959137 RGB2YUV filter[4443]: pipe#0 from 'video-0' to 'filter-0' (output-resolution=1280x1024)
    # [4432] 1522685876.959229 video source thread started: tid=4442
    # [4432] 1522685876.959290 controller socket: socket address [0.0.0.0:8555]
    # [4432] 1522685876.959337 controller server started: tid=4441.
    # [4432] 1522685876.960458 encoder: packet queue initialized (3x3145728 bytes)
    # [4432] 1522685876.960516 qos-measurement: initialized.
    # [4432] 1522685876.960587 (Use port 8000 for optional RTSP-over-HTTP tunneling.)
    # [4432] 1522685983.386797 video encdoer: all started (1)
    # [4432] 1522685983.386926 encoder client registered: total 1 clients.
    # [4432] 1522685983.386990 encoder: pktqueue #0 callback registered (0xf55a88a0)
    # [4432] 1522685983.387065 video encoder: h.264/found sps@4(24); pps@32(4)
    # [4432] 1522685983.387118 GAMediaSubsession: video/H264 SPS=0xdcfc346c(24); PPS=0xdcfc356c(4); profile_level_id=4d4020
    # [4432] 1522685983.387191 qos: add sink#1 for H.264, rtpsink=0xdc6061f8
    # [4432] 1522685983.387255 encoder client unregistered: 0 clients left.
    # [4432] 1522685983.387290 encoder: no more clients, quitting ...
    # [4432] 1522685983.387355 video encoding started: tid=4445 1280x1024@24fps, nalbuf_size=15828640, pic_in_size=1966080.
    # [4432] 1522685983.387402 video encoder: thread terminated (tid=4445).
    # [4432] 1522685983.387446 video encdoer: all stopped (1)
    [libx264 @ 0x9518b40] final ratefactor: 23.57
    # [4432] 1522685983.388265 video encoder: deinitialized.
    # [4432] 1522685983.741415 video encoder: video source #0 from 'filter-0' (1280x1024).
    # [4432] 1522685983.741772 vencoder-init: option b = 3000000
    # [4432] 1522685983.741819 vencoder-init: option g = 48
    # [4432] 1522685983.741870 vencoder-init: option intra-refresh = 1
    # [4432] 1522685983.741926 vencoder-init: option me_method = dia
    # [4432] 1522685983.741975 vencoder-init: option me_range = 16
    # [4432] 1522685983.742020 vencoder-init: option preset = faster
    # [4432] 1522685983.742086 vencoder-init: option profile = main
    # [4432] 1522685983.742123 vencoder-init: option refs = 1
    # [4432] 1522685983.742154 vencoder-init: option slices = 4
    # [4432] 1522685983.742188 vencoder-init: option threads = 4
    # [4432] 1522685983.742218 vencoder-init: option tune = zerolatency
    [libx264 @ 0xdc605f40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
    [libx264 @ 0xdc605f40] profile Main, level 3.2
    [libx264 @ 0xdc605f40] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=dia subme=4 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=48 keyint_min=4 scenecut=40 intra_refresh=1 rc=abr mbtree=0 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    # [4432] 1522685983.749123 video encoder: initialized.
    # [4432] 1522685983.749175 video encdoer: all started (1)
    # [4432] 1522685983.749209 encoder client registered: total 1 clients.
    # [4432] 1522685983.749241 encoder: pktqueue #0 callback registered (0xf55a88a0)
    # [4432] 1522685983.749301 video encoder: h.264/found sps@4(24); pps@32(4)
    # [4432] 1522685983.749336 GAMediaSubsession: video/H264 SPS=0xdcfc353c(24); PPS=0xdcfc363c(4); profile_level_id=4d4020
    # [4432] 1522685983.749385 qos: add sink#1 for H.264, rtpsink=0xe3471b60
    # [4432] 1522685983.749480 video encoding started: tid=4454 1280x1024@24fps, nalbuf_size=15828640, pic_in_size=1966080.
    # [4432] 1522685983.775570 first video frame written (pts=0)
    # [4432] 1522686049.085120 encoder client unregistered: 0 clients left.
    # [4432] 1522686049.085221 encoder: no more clients, quitting ...
    # [4432] 1522686049.102929 video encoder: thread terminated (tid=4454).
    # [4432] 1522686049.103052 video encdoer: all stopped (1)
    [libx264 @ 0xdc605f40] frame I:1     Avg QP: 7.00  size:   447
    [libx264 @ 0xdc605f40] frame P:1568  Avg QP: 0.01  size:   216
    [libx264 @ 0xdc605f40] mb I  I16..4: 99.9%  0.0%  0.1%
    [libx264 @ 0xdc605f40] mb P  I16..4:  3.2%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:96.8%
    [libx264 @ 0xdc605f40] final ratefactor: -29.32
    [libx264 @ 0xdc605f40] coded y,uvDC,uvAC intra: 0.0% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
    [libx264 @ 0xdc605f40] i16 v,h,dc,p: 94%  0%  6%  0%
    [libx264 @ 0xdc605f40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  0%  0% 100%  0%  0%  0%  0%  0%  0%
    [libx264 @ 0xdc605f40] i8c dc,h,v,p: 100%  0%  0%  0%
    [libx264 @ 0xdc605f40] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0xdc605f40] kb/s:41.58
    # [4432] 1522686049.104181 video encoder: deinitialized.

    I think the IP address in RTSP header is the LAN IP of the device which is causing the making the connection to fail. The same software works fine from the LAN. Any help is appreciated.

  • Launch Symfony 4 command from controller works on dev but not in prod environment

    14 août 2019, par JoakDA

    When an application loads, I make 2 AJAX request to start 2 proccess needed for showing a RTSP video streaming on the website.

    It is working great in DEV environment but making some tests in PROD, it only works if the page is loaded on the server webbrowser (same host where the application is installed).

    If I use an external browser installed on another machine, it doesn’t launch the video.

    If I use an external browser installed on another machine, it doesn’t launch the video.

    /**
    * Start transcoding video.
    * @param Request $request
    * @return Response
    * @Route("devices/show/videotranscoding", name="start_video_transcoding", methods={"POST"})
    * @IsGranted("ROLE_OPERATOR")
    */
    public function startTranscodingVideo(Request $request)
    {
       $value = '';
       try {
           //Setup needed variables
           $this->initialize();

           $this->logger->info('Start Video transcoding: Ok. Video started successfully');

           //Get device id from POST data
           $deviceid = $request->request->get('deviceid');

           //Find device to show from system
           $deviceToShow = $this->repository->find($deviceid);

           if ($deviceToShow) {
               $this->logger->info('Start Video transcoding: . Device has been found. Delete it... Data: ' . $deviceToShow->__toString());

               $realHost = $this->getRealHost($_SERVER['HTTP_HOST']);

               $tcpHost = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$realHost}";

               //Launch transcoding command
               $transcodingCommand = 'php ' . $this->getParameter('kernel.project_dir') . '/bin/console device:videotranscoding ' .
                   'rtsp://' . $deviceToShow->getUsername() . ':' . $deviceToShow->getPassword() . '@' . str_replace('http://', '', $deviceToShow->getHost()) . ':' . $deviceToShow->getRTSPPort() . ' ' .
                   str_replace(' ', '', $deviceToShow->getName()) . ' ' . $tcpHost . ' ' . $deviceToShow->getVideoHTTPPort();

               $transcodingProcess = \Symfony\Component\Process\Process::fromShellCommandline($transcodingCommand);

               $transcodingProcess->start();

               $success = true;
               $message = '';

           } else {
               $message = $this->translator->trans('Device with identifier %deviceid% was not found.',
                   ['%deviceid%' => $deviceid]);
               $success = false;

               $this->addFlash('error', $message);

               $this->logger->error('Start Video transcoding: Ko. Device with identifier ' . $deviceid . ' was not found.');
           }
       } catch (Throwable $exception) {
           $message = $this->translator->trans('Error while executing action. Error detail: %detail%.',
               ['%detail%' => $exception->getMessage()]);

           $this->addFlash(
               'error', $message
           );
           $success = false;

           $this->logger->critical('Start Video transcoding: Ko. Exception catched. Error detail: ' . $exception->getMessage());
       }

       $this->logger->info('Start Video transcoding: Ok. Video started successfully');

       return new JsonResponse(array(
           'success' => $success,
           'message' => $message,
           'value' => $value
       ));
    }

    I have a nodejs script executing in background to listen o a specific port to broadcast the data on the TCP port to a websocket server.

    The ffmpeg command transcodes the RTSP stream and sent to port TCP 8102 and broadcast the data to a websocket server listening on port 8105.

    The transcoding command code :

    /**
    * @param InputInterface $input
    * @param OutputInterface $output
    * @return int|void|null
    * @throws \Exception
    */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
       try {
           $this->logger->info('Start video transcoding: Setup video transcoding...');
           $io = new SymfonyStyle($input, $output);
           $now = new \DateTime();
           $io->title('Start video transcoding at ' . $now->format('d-m-Y G:i:s') . '...');

           //Get input parameters
           $rtspUri = $input->getArgument('rtsp');
           $secret = $input->getArgument('secret');
           $portsString = $input->getArgument('tcp_port');
           $tcpHost = $input->getArgument('tcp_host');

           $this->logger->debug('Start video transcoding: RTSP: "' . $rtspUri . '". TCP Port: ' . $portsString);

           //Absolute path to logs
           $logPath = $this->path . DIRECTORY_SEPARATOR . 'var' . DIRECTORY_SEPARATOR . 'log';
           $stdOutPath = $logPath . DIRECTORY_SEPARATOR . 'transcoding_out.log';
           $stdErrrorPath = $logPath . DIRECTORY_SEPARATOR . 'transcoding_error.log';

           //FFMPEG
           $arguments = '-nostdin -t 00:01:00 -rtsp_transport tcp -i ' . $rtspUri . ' -f mpegts -codec:v mpeg1video -s 1920x1080 -b:v 800k -r 30 -bf 0 ' . $tcpHost . ':' . $portsString . '/' . $secret . ' > '
           . $stdOutPath . ' 2> ' . $stdErrrorPath . ' &';
           $ffmpegParams = '/usr/bin/ffmpeg ' . $arguments;
           //$ffmpegProcess = new Process($ffmpegParams);
           $ffmpegProcess = \Symfony\Component\Process\Process::fromShellCommandline($ffmpegParams);
           $ffmpegProcess->setTimeout(60);
           $ffmpegProcess->setIdleTimeout(60);

           try {
               $ffmpegProcess->start();

               $this->logger->info('Start video transcoding: OK. Video streaming successfully started...');
               $io->success('Start video transcoding: OK. Video streaming successfully started...');
           }catch (ProcessTimedOutException $timedOutException){
               $ffmpegProcess->stop(3, SIGINT);
               $this->io->success('Start video transcoding: Ko. Transcoding finished with error.');
           }
       } catch (Throwable $exception) {
           $message = 'Start video transcoding: Ko. Exception catched. Error detail: ' . $exception->getMessage();
           $this->logger->critical($message);
           $io->error($message);
       }
    }

    The node.js code (got from here JSMpeg – MPEG1 Video & MP2 Audio Decoder in JavaScript :

    // Use the websocket-relay to serve a raw MPEG-TS over WebSockets. You can use
    // ffmpeg to feed the relay. ffmpeg -> websocket-relay -> browser
    // Example:
    // node websocket-relay yoursecret 8081 8082
    // ffmpeg -i <some input="input"> -f mpegts http://localhost:8081/yoursecret

    var fs = require('fs'),
       http = require('http'),
       WebSocket = require('ws');

    if (process.argv.length &lt; 3) {
       console.log(
           'Usage: \n' +
           'node websocket-relay.js <secret> [ ]'
       );

       console.log(process.cwd());

       process.exit();
    }

    var STREAM_SECRET = process.argv[2],
       STREAM_PORT = process.argv[3] || 8081,
       WEBSOCKET_PORT = process.argv[4] || 8082,
       RECORD_STREAM = false;

    // Websocket Server
    var socketServer = new WebSocket.Server({port: WEBSOCKET_PORT, perMessageDeflate: false});
    socketServer.connectionCount = 0;
    socketServer.on('connection', function(socket, upgradeReq) {
       socketServer.connectionCount++;
       console.log(
           'New WebSocket Connection: ',
           (upgradeReq || socket.upgradeReq).socket.remoteAddress,
           (upgradeReq || socket.upgradeReq).headers['user-agent'],
           '('+socketServer.connectionCount+' total)'
       );
       socket.on('close', function(code, message){
           socketServer.connectionCount--;
           console.log(
               'Disconnected WebSocket ('+socketServer.connectionCount+' total)'
           );
       });
    });
    socketServer.broadcast = function(data) {
       socketServer.clients.forEach(function each(client) {
           if (client.readyState === WebSocket.OPEN) {
               client.send(data);
           }
       });
    };

    // HTTP Server to accept incomming MPEG-TS Stream from ffmpeg
    var streamServer = http.createServer( function(request, response) {
       var params = request.url.substr(1).split('/');

       if (params[0] !== STREAM_SECRET) {
           console.log(
               'Failed Stream Connection: '+ request.socket.remoteAddress + ':' +
               request.socket.remotePort + ' - wrong secret.'
           );
           response.end();
       }

       response.connection.setTimeout(0);
       console.log(
           'Stream Connected: ' +
           request.socket.remoteAddress + ':' +
           request.socket.remotePort
       );
       request.on('data', function(data){
           socketServer.broadcast(data);
           if (request.socket.recording) {
               request.socket.recording.write(data);
           }
       });
       request.on('end',function(){
           console.log('close');
           if (request.socket.recording) {
               request.socket.recording.close();
           }
       });

       // Record the stream to a local file?
       if (RECORD_STREAM) {
           var path = 'recordings/' + Date.now() + '.ts';
           request.socket.recording = fs.createWriteStream(path);
       }
    }).listen(STREAM_PORT);

    console.log('Listening for incomming MPEG-TS Stream on http://127.0.0.1:'+STREAM_PORT+'/<secret>');
    console.log('Awaiting WebSocket connections on ws://127.0.0.1:'+WEBSOCKET_PORT+'/');
    </secret></secret></some>

    I am using PHP 7.3 and Symfony 4.3

    I am able to get a successfully response from the controller but I can’t watch the video streaming on an external computer.

    UPDATED : I don’t know if it may be related to the issue, but when I switch to DEV and then switch again to PROD using :

    composer dump-env prod

    If I try to clear the cache with :

    php bin/console cache:clear

    It appears :

    joaquin@dev-computer:/var/www/example.com/html$ composer dump-env prod
    Successfully dumped .env files in .env.local.php
    joaquin@dev-computer:/var/www/example.com/html$ php bin/console cache:clear
    09:15:07 ERROR     [console] Error thrown while running command "cache:clear". Message: "Failed to remove file "/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg": unlink(/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg): Permission denied." ["exception" => Symfony\Component\Filesystem\Exception\IOException]8;;file:///var/www/example.com/html/vendor/symfony/filesystem/Exception/IOException.php\^]8;;\ { …},"command" => "cache:clear","message" => "Failed to remove file "/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg": unlink(/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg): Permission denied."]

    In Filesystem.php line 184:

     Failed to remove file "/var/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg": unlink(/va  
    r/www/example.com/html/var/cache/pro~/pools/WBCr1hDG8d/-/R/iW4Vq0vqfrjVsp2Gihwg): Permission denied.                    


    cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>
    </command>

    Thanks

  • ffmpeg mp4 x264 encoding -> playback causes "pending" in both Chrome and IE causing 10+ seconds delay

    26 novembre 2015, par user1978645

    After encoding a video to mp4(x264 with aac) ; I have the following weird behaviour in both crome and IE :

    Im serving the content from https with spdy enables.

    It takes up to 30 seconds before the video is actually played, in the mean time i cannot reload the page it shows up as "pending". (even after i have visual on the video sometimes it takes 10-20 seconds before i can actually reload the page, or navigate to another url on the same domain)

    After looking at the "network" tab in developer tools, i see the following requests for 1 page/video :

    Path        Method Status   Type         Initiator   Size/content  Time/latency
    video.mp4   GET    206 OK   video/mp4    other       32.3KB/32.0kb  600ms/339MS
    video.mp4   GET    206 OK   video/mp4    other       123kb/123b     21.85s/21.46s
    video.mp4   GET    206 OK   video/mp4    other       7.1MB/7.2MB    1.4min/2ms

    I tried to isolate the problem, When i use an mp4 video from the internet (for example the demo video of jplayer) and load it from my server, it loads rapidly, without delays.

    So it makes me think the problem lies within the encoding. I tried various things.
    FFmpeg :

    • csr 69 (low quality)

    • various options

    HTML :

    • preload="none"

    • javascript loading/playing of the movie

    • type=’mp4/video’

    • no posterimage

    But i cannot resolve the problem. Does anyone have a clue what is causing this ?

    I have a download speed of 300kb/s and the movie is 6MB.

    After the video starts, the video isn’t fully buffered, so i wonder : What is the html5 videoplayer doing all this time ?

    The problem also blocks the connections. When i press "F5" in both chrome and IE the page beeing reloaded comes up in the network tab as "pending" and it can take 10 to 20 seconds before the page actually reloads.

    ffmpeg command : (i used various commands but this is just 1 example which causes the problem)

    /root/bin/ffmpeg    -threads 1 -y  -i /home/flirtzo/public_html//userfiles/files/94e76a18a7838e62ecb23cf0c374b1b798e7b936  -threads 0 -codec:a libfdk_aac -b:a 128k  -vf "scale=-2:320" -preset veryslow -vcodec h264 -acodec aac -strict -2  /home/flirtzo/public_html/userfiles/files/b2/72/695f4eba95169a3f29564bf9571c703b05f1b5974f5156da633eb139c80a1575452e2858dfc61cc82bfca02d2b156aa64d4503695756481dc2a5d1c673a4cdea-94e76a18a7838e62ecb23cf0c374b1b798e7b936.mp4

    Output :

    ffmpeg version git-2014-04-16-c150e2c Copyright (c) 2000-2014 the FFmpeg developers
     built on Sep 28 2014 21:08:17 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
     configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-        ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-nonfree -    -enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-    libx264
     libavutil      52. 76.100 / 52. 76.100
     libavcodec     55. 58.103 / 55. 58.103
     libavformat    55. 37.100 / 55. 37.100
     libavdevice    55. 13.100 / 55. 13.100
     libavfilter     4.  4.100 /  4.  4.100
     libswscale      2.  6.100 /  2.  6.100
     libswresample   0. 18.100 /  0. 18.100
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mpeg, from         '/home/flirtzo/public_html//userfiles/files/94e76a18a7838e62ecb23cf0c374b1b798e7b936':
     Duration: 00:00:25.97, start: 0.340078, bitrate: 29004 kb/s
       Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x240 [SAR 200:219 DAR 880:657], 1150     kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 29.97 tbc
       Stream #0:1[0x1c0]: Audio: mp2, 44100 Hz, stereo, s16p, 224 kb/s
    [libx264 @ 0x2b189c0] using SAR=1199/1314
    [libx264 @ 0x2b189c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x2b189c0] profile High, level 1.3
    [libx264 @ 0x2b189c0] 264 - core 142 r2 d6b4e63 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 -     http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex     subme=4 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0     deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12 lookahead_threads=1 sliced_threads=0 nr=0     decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0     direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0     rc_lookahead=20 rc=crf mbtree=1 crf=51.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to     '/home/flirtzo/public_html/userfiles/files/b2/72/695f4eba95169a3f29564bf9571c703b05f1b5974f5156da633e    b139c80a1575452e2858dfc61cc82bfca02d2b156aa64d4503695756481dc2a5d1c673a4cdea-    94e76a18a7838e62ecb23cf0c374b1b798e7b936.mp4':
     Metadata:
       encoder         : Lavf55.37.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 320x218 [SAR 1199:1314        DAR 880:657], q=-1--1, 30k tbn, 29.97 tbc
       Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (mpeg1video -> libx264)
     Stream #0:1 -> #0:1 (mp2 -> aac)
    Press [q] to stop, [?] for help
    frame=16127 fps=786 q=-1.0 Lsize=   10559kB time=00:08:58.12 bitrate= 160.7kbits/s dup=12 drop=0
    video:1586kB audio:8410kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:     5.638589%
    [libx264 @ 0x2b189c0] frame I:109   Avg QP:50.58  size:   494
    [libx264 @ 0x2b189c0] frame P:9537  Avg QP:51.00  size:   138
    [libx264 @ 0x2b189c0] frame B:6481  Avg QP:51.00  size:    40
    [libx264 @ 0x2b189c0] consecutive B-frames: 21.8% 72.1%  5.4%  0.7%
    [libx264 @ 0x2b189c0] mb I  I16..4: 46.1% 53.9%  0.0%
    [libx264 @ 0x2b189c0] mb P  I16..4:  6.0%  6.1%  0.0%  P16..4: 12.7%  1.1%  0.1%  0.0%  0.0%        skip:74.1%
    [libx264 @ 0x2b189c0] mb B  I16..4:  0.1%  0.1%  0.0%  B16..8:  6.3%  0.0%  0.0%  direct: 0.7%      skip:92.9%  L0:38.6% L1:61.2% BI: 0.2%
    [libx264 @ 0x2b189c0] 8x8 transform intra:50.8% inter:85.6%
    [libx264 @ 0x2b189c0] coded y,uvDC,uvAC intra: 5.9% 39.5% 0.1% inter: 0.1% 1.0% 0.0%
    [libx264 @ 0x2b189c0] i16 v,h,dc,p: 56% 30%  7%  7%
    [libx264 @ 0x2b189c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 11% 62%  3%  3%  3%  3%  2%  2%
    [libx264 @ 0x2b189c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19%  5% 73%  2%  0%  0%  0%  0%  2%
    [libx264 @ 0x2b189c0] i8c dc,h,v,p: 97%  1%  2%  0%
    [libx264 @ 0x2b189c0] Weighted P-Frames: Y:5.5% UV:2.7%
    [libx264 @ 0x2b189c0] ref P L0: 64.8% 35.2%
    [libx264 @ 0x2b189c0] ref B L0: 75.2% 24.8%
    [libx264 @ 0x2b189c0] ref B L1: 99.3%  0.7%
    [libx264 @ 0x2b189c0] kb/s:24.13
    ffmpeg version git-2014-04-16-c150e2c Copyright (c) 2000-2014 the FFmpeg developers
     built on Sep 28 2014 21:08:17 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
     configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-    ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --extra-libs=-ldl --enable-gpl --enable-nonfree -    -enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-    libx264
     libavutil      52. 76.100 / 52. 76.100
     libavcodec     55. 58.103 / 55. 58.103
     libavformat    55. 37.100 / 55. 37.100
     libavdevice    55. 13.100 / 55. 13.100
     libavfilter     4.  4.100 /  4.  4.100
     libswscale      2.  6.100 /  2.  6.100
     libswresample   0. 18.100 /  0. 18.100
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mpeg, from     '/home/flirtzo/public_html//userfiles/files/94e76a18a7838e62ecb23cf0c374b1b798e7b936':
     Duration: 00:00:25.97, start: 0.340078, bitrate: 29004 kb/s
       Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x240 [SAR 200:219 DAR 880:657], 1150         kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 29.97 tbc
       Stream #0:1[0x1c0]: Audio: mp2, 44100 Hz, stereo, s16p, 224 kb/s
    [libx264 @ 0x300d9c0] using SAR=200/219
    [libx264 @ 0x300d9c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x300d9c0] profile High, level 2.2
    [libx264 @ 0x300d9c0] 264 - core 142 r2 d6b4e63 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 -                     http://www.videolan.org/x264.html - options: cabac=1 ref=16 deblock=1:0:0 analyse=0x3:0x133 me=umh         subme=10 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1 cqm=0     deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=1 sliced_threads=0 nr=0     decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=8 b_pyramid=2 b_adapt=2 b_bias=0     direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0     rc_lookahead=60 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to     '/home/flirtzo/public_html/userfiles/files/b2/72/73d4a3245c0b0e174ab7ce0f872ba3f649f8b93f73a6deeab364    4a994009d73638ce61aecc7dc2e0250c4e74ff2d9a4d479ed35cef26b3f6e1a77e8bf5938518-    94e76a18a7838e62ecb23cf0c374b1b798e7b936.mp4':
     Metadata:
       encoder         : Lavf55.37.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 352x240 [SAR 200:219     DAR 880:657], q=-1--1, 30k tbn, 29.97 tbc
       Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (mpeg1video -> libx264)
     Stream #0:1 -> #0:1 (mp2 -> aac)
      Press [q] to stop, [?] for help
    frame=16127 fps= 88 q=-1.0 Lsize=   29190kB time=00:08:58.12 bitrate= 444.4kbits/s dup=12 drop=0
    video:20221kB audio:8410kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:     1.954086%
    [libx264 @ 0x300d9c0] frame I:73    Avg QP:24.31  size:  8024
    [libx264 @ 0x300d9c0] frame P:4399  Avg QP:26.97  size:  2600
    [libx264 @ 0x300d9c0] frame B:11655 Avg QP:32.51  size:   745
    [libx264 @ 0x300d9c0] consecutive B-frames:  3.8%  5.0% 27.2% 18.4%  8.4% 33.9%  1.7%  0.7%  0.9%
    [libx264 @ 0x300d9c0] mb I  I16..4: 10.8% 68.5% 20.7%
    [libx264 @ 0x300d9c0] mb P  I16..4:  2.9%  7.5%  0.8%  P16..4: 45.1% 18.4% 12.4%  0.5%  0.1%        skip:12.3%
    [libx264 @ 0x300d9c0] mb B  I16..4:  0.6%  1.3%  0.1%  B16..8: 40.1%  8.7%  1.7%  direct: 2.1%      skip:45.5%  L0:47.2% L1:41.7% BI:11.1%
    [libx264 @ 0x300d9c0] 8x8 transform intra:66.7% inter:76.7%
    [libx264 @ 0x300d9c0] direct mvs  spatial:99.9% temporal:0.1%
    [libx264 @ 0x300d9c0] coded y,uvDC,uvAC intra: 60.3% 75.8% 16.4% inter: 17.3% 16.8% 0.6%
    [libx264 @ 0x300d9c0] i16 v,h,dc,p: 16% 27% 11% 47%
    [libx264 @ 0x300d9c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 13% 18%  6%  9%  9% 11%  9% 11%
    [libx264 @ 0x300d9c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 15%  7%  7% 14% 14% 13%  8% 10%
    [libx264 @ 0x300d9c0] i8c dc,h,v,p: 26% 32% 20% 22%
    [libx264 @ 0x300d9c0] Weighted P-Frames: Y:10.1% UV:6.9%
    [libx264 @ 0x300d9c0] ref P L0: 40.6% 12.1% 10.0%  5.2%  5.2%  4.7%  4.6%  3.0%  2.5%  2.1%  1.9%      1.8%  1.7%  1.7%  1.6%  1.3%
    [libx264 @ 0x300d9c0] ref B L0: 71.4%  5.6%  3.2%  3.0%  3.1%  2.8%  2.5%  1.8%  1.3%  1.0%  1.1%      1.2%  1.0%  0.7%  0.5%
    [libx264 @ 0x300d9c0] ref B L1: 96.3%  3.7%
    [libx264 @ 0x300d9c0] kb/s:307.82