Преобразование FFMPEG php HLS и DA SH - PullRequest
0 голосов
/ 13 июля 2020

Я использую это репо https://github.com/aminyazdanpanah/PHP-FFmpeg-video-streaming для кодирования видео в формате hls, а затем для воспроизведения во внешнем интерфейсе.

После правильного создания всех сегментов hls скрипт php завершился ошибкой чтобы выполнить команду ниже. Ошибка получения команды следующая:

'/usr/bin/ffmpeg' '-y' '-i' 'source.mp4' '-c:v' 'libx264' '-c:a' 'aac' '-bf' '1' '-keyint_min' '25' '-g' '250' '-sc_threshold' '40' '-use_timeline' '1' '-use_template' '1' '-init_seg_name' 'dash_init_$RepresentationID$.$ext$' '-media_seg_name' 'dash_chunk_$RepresentationID$_$Number%05d$.$ext$' '-seg_duration' '10' '-hls_playlist' '0' '-f' 'dash' '-adaptation_sets' 'id=0,streams=v id=1,streams=a' '-map' '0' '-s:v:0' '256x144' '-b:v:0' '830k' '-map' '0' '-s:v:1' '426x240' '-b:v:1' '969k' '-map' '0' '-s:v:2' '640x360' '-b:v:2' '1162k' '-map' '0' '-s:v:3' '854x480' '-b:v:3' '1453k' '-map' '0' '-s:v:4' '1280x720' '-b:v:4' '1938k' '-map' '0' '-s:v:5' '1920x1080' '-b:v:5' '2907k' '-strict' '-2' '-threads' '12' 'dash.mpd'

Вот ошибка, напечатанная при выполнении команды с помощью CLI:

    ffmpeg version 4.3-2~16.04.york1 Copyright (c) 2000-2020 the FFmpeg developers
    built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
    configuration: --prefix=/usr --extra-version='2~16.04.york1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
    libavutil      56. 51.100 / 56. 51.100
    libavcodec     58. 91.100 / 58. 91.100
    libavformat    58. 45.100 / 58. 45.100
    libavdevice    58. 10.100 / 58. 10.100
    libavfilter     7. 85.100 /  7. 85.100
    libavresample   4.  0.  0 /  4.  0.  0
    libswscale      5.  7.100 /  5.  7.100
    libswresample   3.  7.100 /  3.  7.100
    libpostproc    55.  7.100 / 55.  7.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'source.mp4':
    Metadata:
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: mp42mp41
        creation_time   : 2020-07-10T09:13:47.000000Z
    Duration: 01:03:27.36, start: 0.000000, bitrate: 3298 kb/s
        Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 2977 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
        Metadata:
        creation_time   : 2020-07-10T09:13:47.000000Z
        handler_name    : ?Mainconcept Video Media Handler
        encoder         : AVC Coding
        Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
        Metadata:
        creation_time   : 2020-07-10T09:13:48.000000Z
        handler_name    : #Mainconcept MP4 Sound Media Handler
    Stream mapping:
    Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    Stream #0:1 -> #0:1 (aac (native) -> aac (native))
    Stream #0:0 -> #0:2 (h264 (native) -> h264 (libx264))
    Stream #0:1 -> #0:3 (aac (native) -> aac (native))
    Stream #0:0 -> #0:4 (h264 (native) -> h264 (libx264))
    Stream #0:1 -> #0:5 (aac (native) -> aac (native))
    Stream #0:0 -> #0:6 (h264 (native) -> h264 (libx264))
    Stream #0:1 -> #0:7 (aac (native) -> aac (native))
    Stream #0:0 -> #0:8 (h264 (native) -> h264 (libx264))
    Stream #0:1 -> #0:9 (aac (native) -> aac (native))
    Stream #0:0 -> #0:10 (h264 (native) -> h264 (libx264))
    Stream #0:1 -> #0:11 (aac (native) -> aac (native))
    Press [q] to stop, [?] for help
    [libx264 @ 0x55de2d5e6c80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x55de2d5e6c80] profile High, level 2.0
    [libx264 @ 0x55de2d5e6c80] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 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=1 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=830 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [libx264 @ 0x55de2d09fcc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x55de2d09fcc0] profile High, level 2.1
    [libx264 @ 0x55de2d09fcc0] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 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=1 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=969 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [libx264 @ 0x55de2d0a4240] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x55de2d0a4240] profile High, level 3.0
    [libx264 @ 0x55de2d0a4240] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=1 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1162 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [libx264 @ 0x55de2d0a8380] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x55de2d0a8380] profile High, level 3.0
    [libx264 @ 0x55de2d0a8380] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=1 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1453 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [libx264 @ 0x55de2d085c80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x55de2d085c80] profile High, level 3.1
    [libx264 @ 0x55de2d085c80] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=1 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1938 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [libx264 @ 0x55de2d089d40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x55de2d089d40] profile High, level 4.0
    [libx264 @ 0x55de2d089d40] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=1 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=2907 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [dash @ 0x55de2cf50900] Opening 'dash_init_0.m4s' for writing
    [dash @ 0x55de2cf50900] Opening 'dash_init_1.m4s' for writing
    [dash @ 0x55de2cf50900] Opening 'dash_init_2.m4s' for writing
    [dash @ 0x55de2cf50900] Conflicting stream par values in Adaptation Set 1
    Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
    Error initializing output stream 0:10 -- 
    [libx264 @ 0x55de2d5e6c80] final ratefactor: 16.04
    [aac @ 0x55de2d09eb80] Qavg: 65536.000
    [aac @ 0x55de2d09eb80] 2 frames left in the queue on closing
    [libx264 @ 0x55de2d09fcc0] final ratefactor: 19.18
    [aac @ 0x55de2d0a2b00] Qavg: 65536.000
    [aac @ 0x55de2d0a2b00] 2 frames left in the queue on closing
    [libx264 @ 0x55de2d0a4240] final ratefactor: 21.16
    [aac @ 0x55de2d0a6c40] Qavg: 65536.000
    [aac @ 0x55de2d0a6c40] 2 frames left in the queue on closing
    [libx264 @ 0x55de2d0a8380] final ratefactor: 21.67
    [aac @ 0x55de2d084540] Qavg: 65536.000
    [aac @ 0x55de2d084540] 2 frames left in the queue on closing
    [libx264 @ 0x55de2d085c80] final ratefactor: 22.63
    [aac @ 0x55de2d088600] Qavg: 65536.000
    [aac @ 0x55de2d088600] 2 frames left in the queue on closing
    [libx264 @ 0x55de2d089d40] final ratefactor: 22.67
    [aac @ 0x55de2d08c5c0] Qavg: 65536.000
    [aac @ 0x55de2d08c5c0] 2 frames left in the queue on closing
    Conversion failed!

Я проверил, есть ли у меня поддержка MPEG DA SH enable, и он включен в FFMPEG

...