2017-02-23 2 views
0

Je suis les instructions here pour essayer de rendre WebM diffusion en direct via DASH. Mon entrée provient d'une caméra Axis et elle est en streaming en tant que codage h264. J'utilise node pour faire tourner les processus ffmpeg. Je suis capable de créer le fichier .hdr et les fichiers .chk. Le fichier .mpd est même créé, mais il est vide et je reçois une erreur disant:WebM diffusion en direct via DASH

Could not write header for output file #0 (incorrect codec parameters ?): Operation not permittedStream mapping: Stream #0:0 -> #0:0 (copy) 

est ici tout mon code:

var express = require('express'); 
spawn = require('child_process').spawn; 

var app = express(); 

app.use(express.static(__dirname + '/public')); 

app.listen(8080); 
console.log("Running on Port 8080"); 

var ffmpeg1 = spawn('ffmpeg', [ 
    '-y', 
    //video 
    '-i', 'rtsp://admin:[email protected]:554/axis-media/media.amp?videocodec=h264&resolution=1280x720', 

    '-map', '0:0', 
    '-pix_fmt', 'yuv420p', 
    '-color_range', '2', 
    '-c:v', 'libvpx-vp9', 

    '-s', '1280x720', 
    '-keyint_min', '25', 
    '-g', '25', 

    // //VP9_LIVE_PARAMS 
    '-speed', '6', 
    '-tile-columns', '4', 
    '-frame-parallel', '1', 
    '-threads', '8', 
    '-static-thresh', '0', 
    '-max-intra-rate', '300', 
    '-deadline', 'realtime', 
    '-lag-in-frames', '0', 
    '-error-resilient', '1', 

    '-f', 'webm_chunk', 
    '-header', 'public/glass_360.hdr', 
    '-chunk_start_index', '1', 
    'public/glass_360_%d.chk', 
]); 


setTimeout(()=> { 
    var ffmpeg2 = spawn('ffmpeg', [ 
    '-y', 
    '-f', 'webm_dash_manifest', 
    '-live', '1', 
    '-i', 'public/glass_360.hdr', 
    '-c', 'copy', 
    '-map', '0', 
    '-r', '25', 
    '-framerate', '25', 

    '-f', 'webm_dash_manifest', 
    '-live', '1', 

    '-adaptation_sets', '"id=0,streams=0"', 
    '-chunk_start_index', '1', 
    '-chunk_duration_ms', '2000', 
    '-time_shift_buffer_depth', '7200', 
    '-minimum_update_period', '7200', 

    'public/glass_live_manifest.mpd' 
    ]); 
    ffmpeg2.stdout.on('data', 
     function (data) { 
      console.log('ff2std: ' + data); 
     } 
); 

    ffmpeg2.stderr.on('data', 
     function (data) { 
      console.log('ff2err: ' + data); 
     } 
); 
}, 5000); 

ffmpeg1.stdout.on('data', 
    function (data) { 
     console.log('ff1std: ' + data); 
    } 
); 

ffmpeg1.stderr.on('data', 
    function (data) { 
     console.log('ff1err: ' + data); 
    } 
); 

est ici toute ma sortie:

Running on Port 8080 
ff1err: ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers 
    built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) 
    configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-frei0r --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.1.2/include/openjpeg-2.1 --enable-nonfree --enable-vda 

ff1err: libavutil  55. 34.101/55. 34.101 
    libavcodec  57. 64.101/57. 64.101 
    libavformat 57. 56.101/57. 56.101 
    libavdevice 57. 1.100/57. 1.100 
    libavfilter  6. 65.100/6. 65.100 
    libavresample 3. 1. 0/3. 1. 0 
    libswscale  4. 2.100/4. 2.100 
    libswresample 2. 3.100/2. 3.100 
    libpostproc 54. 1.100/54. 1.100 

ff1err: Input #0, rtsp, from 'rtsp://admin:[email protected]:554/axis-media/media.amp?videocodec=h264&resolution=1280x720': 
    Metadata: 
    title   : Session streamed with GStreamer 
    comment   : rtsp-server 
    Duration: N/A, start: 0.033344 
ff1err: , bitrate: N/A 
    Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 180k tbc 

ff1err: [swscaler @ 0x7f8df281bc00] deprecated pixel format used, make sure you did set range correctly 

ff1err: [libvpx-vp9 @ 0x7f8df2800600] v1.6.1 

ff1err: Output #0, webm_chunk, to 'public/glass_360_%d.chk': 
    Metadata: 
    title   : Session streamed with GStreamer 
    comment   : rtsp-server 
    encoder   : Lavf57.56.101 

ff1err:  Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p(pc), 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 200 kb/s, 25 fps, 1k tbn, 25 tbc 
    Metadata: 
     encoder   : Lavc57.64.101 libvpx-vp9 
    Side data: 
     cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 
Stream mapping: 
    Stream #0:0 -> #0:0 (h264 (native) -> vp9 (libvpx-vp9)) 
Press [q] to stop, [?] for help 

ff1err: frame= 10 fps=0.0 q=0.0 size=N/A time=00:00:00.36 bitrate=N/A speed=0.71x  
ff1err: frame= 25 fps= 25 q=0.0 size=N/A time=00:00:00.96 bitrate=N/A speed=0.946x  
ff1err: frame= 40 fps= 26 q=0.0 size=N/A time=00:00:01.56 bitrate=N/A speed=1.03x  
ff1err: frame= 55 fps= 27 q=0.0 size=N/A time=00:00:02.16 bitrate=N/A speed=1.07x  
ff1err: frame= 70 fps= 28 q=0.0 size=N/A time=00:00:02.76 bitrate=N/A speed=1.09x  
ff1err: frame= 85 fps= 28 q=0.0 size=N/A time=00:00:03.36 bitrate=N/A speed=1.11x  
ff2err: ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers 
    built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) 
    configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-frei0r --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.1.2/include/openjpeg-2.1 --enable-nonfree --enable-vda 

ff2err: libavutil  55. 34.101/55. 34.101 
    libavcodec  57. 64.101/57. 64.101 
    libavformat 57. 56.101/57. 56.101 
    libavdevice 57. 1.100/57. 1.100 
    libavfilter  6. 65.100/6. 65.100 
    libavresample 3. 1. 0/3. 1. 0 
    libswscale  4. 2.100/4. 2.100 
    libswresample 2. 3.100/2. 3.100 
    libpostproc 54. 1.100/54. 1.100 

ff2err: [webm_dash_manifest @ 0x7fbc5b80b400] Could not find codec parameters for stream 0 (Video: vp9, none, 1280x720): unspecified pixel format 
Consider increasing the value for the 'analyzeduration' and 'probesize' options 

ff2err: Input #0, webm_dash_manifest, from 'public/glass_360.hdr': 
    Metadata: 
    title   : Session streamed with GStreamer 
    encoder   : Lavf57.56.101 
    Duration: N/A, bitrate: N/A 
    Stream #0:0: Video: vp9, none, 1280x720 
ff2err: , SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc (default) 
    Metadata: 
     webm_dash_manifest_file_name: glass_360.hdr 
     webm_dash_manifest_track_number: 1 

ff2err: Could not write header for output file #0 (incorrect codec parameters ?): Operation not permittedStream mapping: 
    Stream #0:0 -> #0:0 (copy) 

ff2err:  Last message repeated 1 times 

ff1err: frame= 101 fps= 29 q=0.0 size=N/A time=00:00:04.00 bitrate=N/A speed=1.13x  
ff1err: frame= 116 fps= 29 q=0.0 size=N/A time=00:00:04.60 bitrate=N/A speed=1.14x  
ff1err: frame= 131 fps= 29 q=0.0 size=N/A time=00:00:05.20 bitrate=N/A speed=1.15x  
ff1err: frame= 146 fps= 29 q=0.0 size=N/A time=00:00:05.80 bitrate=N/A speed=1.15x  
ff1err: frame= 161 fps= 29 q=0.0 size=N/A time=00:00:06.40 bitrate=N/A speed=1.15x  
ff1err: frame= 177 fps= 29 q=0.0 size=N/A time=00:00:07.04 bitrate=N/A speed=1.16x  
ff1err: frame= 192 fps= 29 q=0.0 size=N/A time=00:00:07.64 bitrate=N/A speed=1.16x  
ff1err: frame= 207 fps= 29 q=0.0 size=N/A time=00:00:08.24 bitrate=N/A speed=1.16x  
ff1err: frame= 222 fps= 29 q=0.0 size=N/A time=00:00:08.84 bitrate=N/A speed=1.17x  
ff1err: frame= 237 fps= 29 q=0.0 size=N/A time=00:00:09.44 bitrate=N/A speed=1.17x  
ff1err: frame= 252 fps= 29 q=0.0 size=N/A time=00:00:10.04 bitrate=N/A speed=1.17x 

Pourquoi ffmpeg crée-t-il un fichier .mpd vide?

Répondre

0

Supprimez simplement les guillemets supplémentaires.

'-adaptation_sets', 'id=0,streams=0',