
Recherche avancée
Autres articles (88)
-
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 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, parMediaSPIP 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 2013Jolie 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 VI 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 JoakDAWhen 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 < 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 user1978645After 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/2msI 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 -