Recherche avancée

Médias (91)

Autres articles (5)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

    Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
    Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...)

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (2513)

  • FFMPEG - Multi Track, Multi Channel file to discrete mono files

    26 novembre 2020, par vade

    I have files which are multi track, and multi channel (ie, track 1 may be 5.1, track 2 may be stereo, track 3 may be stereo etc)

    


    I am looking to output every channel from every track into its own 'unrolled' discrete mono file.

    


    example media :

    


    ffprobe version 4.3.1-0york0~18.04 Copyright (c) 2007-2020 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/usr --extra-version='0york0~18.04' --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-libzimg --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
[mxf @ 0x55d3e7fc2680] wrapping of stream 0 is unknown
[jpeg2000 @ 0x55d3e805ce00] End mismatch 1
    Last message repeated 1 times
Input #0, mxf, from 'redacted.mxf':
  Metadata:
    operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
    modification_date: 2019-10-03T09:58:16.368000Z
    uid             : f6267ae2-680e-4357-9b1d-c77c045d3cd7
    generation_uid  : e7e6f5a1-6f15-4df5-aea8-a41f3ef535d6
    company_name    : redacted
    product_name    : redacted
    product_version : 11.6.1.5.301404
    product_uid     : 84ae5ffc-4710-11dd-a6fe-0010c629ec73
    application_platform: 4KICR1
    material_package_umid: 0x060A2B340101010501010D2013000000BE3608F3135E48AD99E4340643E47F22
    timecode        : 00:59:20:00
  Duration: 00:26:16.07, start: 0.000000, bitrate: 139194 kb/s
    Stream #0:0: Video: jpeg2000, yuv422p10le(progressive), 1920x1080, SAR 1:1 DAR 16:9, 23.98 tbr, 23.98 tbn, 23.98 tbc
    Metadata:
      file_package_umid: 0x060A2B340101010501010D201300000091A43E578B86490698045924FA9EECC5
      track_name      : Picture
    Stream #0:1: Audio: pcm_s24le, 48000 Hz, 6 channels, s32 (24 bit), 6912 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D201300000091A43E578B86490698045924FA9EECC5
      track_name      : Sound
    Stream #0:2: Audio: pcm_s24le, 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D201300000091A43E578B86490698045924FA9EECC5
      track_name      : Sound
    Stream #0:3: Audio: pcm_s24le, 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D201300000091A43E578B86490698045924FA9EECC5
      track_name      : Sound
    Stream #0:4: Audio: pcm_s24le, 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D201300000091A43E578B86490698045924FA9EECC5
      track_name      : Sound
    Stream #0:5: Data: none
    Metadata:
      file_package_umid: 0x060A2B340101010501010D201300000091A43E578B86490698045924FA9EECC5
      track_name      : Auxiliary Data
      data_type       : vbi_vanc_smpte_436M
Unsupported codec with id 0 for input stream 5


    


    These files are vendor qualified masters, and the track / channel combinations vary between vendors, so some might be stereo, 5.1, 7.1 order, some might be all discrete mono already, some might be discrete stereo, 5.1, and mono tracks. Its all a mix. So im looking for some general strategy that gracefully handles all channels from all tracks.

    


    Now I have seen various strategies documented to handle discretizing audio via ffmpeg docs, but none of them seem to show how to target different channels from different tracks. Im sure its a pebkac error, but I'd love some guidance.

    


    I have tried both a map_channel approach as well as a -filtercomplex channelsplit approach.

    


    ffmpeg -i redacted.mxf -ss 60 \
-map_channel 0.1.0 -t 10 track_1_0.wav \
-map_channel 0.1.1 -t 10 track_1_1.wav \
-map_channel 0.1.2 -t 10 track_1_2.wav \
-map_channel 0.1.3 -t 10 track_1_3.wav \
-map_channel 0.1.4 -t 10 track_1_4.wav \
-map_channel 0.1.5 -t 10 track_1_5.wav \
-map_channel 0.2.0 -t 10 track_2_0.wav \
-map_channel 0.2.1 -t 10 track_2_1.wav \
-map_channel 0.3.0 -t 10 track_3_0.wav \
-map_channel 0.3.1 -t 10 track_3_1.wav \
-map_channel 0.4.0 -t 10 track_4_0.wav \
-map_channel 0.4.1 -t 10 track_4_1.wav 


    


    However, the output files are not all mono, some are marked as 5.1. I dont believe they are inheriting a sane / correct channel layout (mono) - but the output files that are marked 5.1 are nonsensical, as they are all sourced from stereo tracks. ie track_2_0.wav track_2_1.wav, track_3_0.wav, track_3_1.wav, track_4_0.wav, track_4_1.wav. Which seems odd. Track 1_0 from the above command outputs a sane media info :

    


    File size                                : 938 KiB
Duration                                 : 10s 0ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 768 Kbps
Writing application                      : Lavf58.45.100

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 10s 0ms
Bit rate mode                            : Constant
Bit rate                                 : 768 Kbps
Channel(s)                               : 1 channel
Sampling rate                            : 48.0 KHz
Bit depth                                : 16 bits
Stream size                              : 938 KiB (100%)



    


    However the second and 3rd track have the wrong channel layout and an unexpected codec id :

    


    Format                                   : Wave
File size                                : 5.49 MiB
Duration                                 : 10s 0ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 4 608 Kbps
Writing application                      : Lavf58.45.100

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 00000001-0000-0010-8000-00AA00389B71
Duration                                 : 10s 0ms
Bit rate mode                            : Constant
Bit rate                                 : 4 608 Kbps
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Lb Rb
Sampling rate                            : 48.0 KHz
Bit depth                                : 16 bits
Stream size                              : 5.49 MiB (100%)



    


    Additionally re : map_channel, there are some docs that cast doubt that its the right approach :

    


    


    Note that currently each output stream can only contain channels from a single input stream ; you can’t for example use "-map_channel" to pick multiple input audio channels contained in different streams (from the same or different files) and merge them into a single output stream. It is therefore not currently possible, for example, to turn two separate mono streams into a single stereo stream. However splitting a stereo stream into two single channel mono streams is possible.

    


    


    Using filter complex, the docs/bug tracker have an example of discretizing 5.1 and marking mono. I can target the tracks I want, and get a valid filter chain as seen in debug log reporting, however I only get audio for the 1st track :

    


    ffmpeg -y -v 40 -i redacted.mxf -ss 60 \
    -disposition:a default \
    -filter_complex \
    "[0:a:0]channelsplit=channel_layout=5.1[c1][c2][c3][c4][c5][c6],\
    [c1]aformat=channel_layouts=mono[c1],\
    [c2]aformat=channel_layouts=mono[c2],\
    [c3]aformat=channel_layouts=mono[c3],\
    [c4]aformat=channel_layouts=mono[c4],\
    [c5]aformat=channel_layouts=mono[c5],\
    [c6]aformat=channel_layouts=mono[c6],\
    [0:a:1]channelsplit=channel_layout=stereo[c7][c8],\
    [c7]aformat=channel_layouts=mono[c7],\
    [c8]aformat=channel_layouts=mono[c8],\
    [0:a:2]channelsplit=channel_layout=stereo[c9][c10],\
    [c9]aformat=channel_layouts=mono[c9],\
    [c10]aformat=channel_layouts=mono[c10],\
    [0:a:3]channelsplit=channel_layout=stereo[c11][c12],\
    [c11]aformat=channel_layouts=mono[c11],\
    [c12]aformat=channel_layouts=mono[c12]"\
     -map  "[c1]" -t 10 1.wav\
     -map  "[c2]" -t 10 2.wav\
     -map  "[c3]" -t 10 3.wav\
     -map  "[c4]" -t 10 4.wav\
     -map  "[c5]" -t 10 5.wav\
     -map  "[c6]" -t 10 6.wav\
     -map  "[c7]" -t 10 7.wav\
     -map  "[c8]" -t 10 8.wav\
     -map  "[c9]" -t 10 9.wav\
     -map  "[c10]" -t 10 10.wav\
     -map  "[c11]" -t 10 11.wav\
     -map  "[c12]" -t 10 12.wav


    


    TL/DR ;

    


    In short, how does one export every channel of every track as a discrete mono audio track (regardless of the channel layouts ?)

    


    Thank you !

    


  • ffmpeg : problems playing video on android

    25 novembre 2020, par Jonathan García

    (Translated) Hello ! I have the following problem. I concatenate multiple ts files and convert to mp4 with ffmpeg. I do this operation multiple times in an automated way, so I don't always check the results, but whenever I do, on the computer, the result obtained is as expected. However, some videos, when played on an Android device, are seen incorrectly in any application : Chrome, Firefox, Vlc, etc. The version of ffmpeg I use is the latest. This is the command I use :

    


    ffmpeg.exe -hwaccel dxva2 -y -f concat -i list.txt -acodec copy -vcodec copy output.mp4 -preset normal

    


    Results :

    


    PC

    


    Android

    


    This is the output of ffmpeg :

    


    ffmpeg version n4.3.1-26-gca55240b8c Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3-win32 (GCC) 20200320
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libtwolame --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp
  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
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Trailing option(s) found in the command: may be ignored.
Input #0, concat, from 'list.txt':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Data: timed_id3 (ID3  / 0x20334449)
    Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, unknown/bt470bg/unknown, progressive), 320x568, 29.50 fps, 29.50 tbr, 90k tbn, 180k tbc
    Stream #0:2: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, mono, fltp, 64 kb/s
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, unknown/bt470bg/unknown, progressive), 320x568, q=2-31, 29.50 fps, 29.50 tbr, 90k tbn, 90k tbc
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 64 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 9504 fps=8330 q=-1.0 Lsize=   24561kB time=00:07:42.26 bitrate= 435.3kbits/s speed= 405x
video:21200kB audio:3100kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.073735%


    


    Not all videos are "yuv420p (tv, unknown / bt470bg / unknown, progressive)", but this should not be the problem, since other videos with this information are seen correctly on Android.

    


    To correct this type of video I do the following :

    


    ffmpeg -y -f concat -i list.txt -c:v libx264 -preset slow -crf 22 -pix_fmt yuv420p -c:a aac -b:a 128k output.mp4

    


    So I get the video to play correctly both on pc and Android. Unfortunately, automating the process by always using this last line occasionally causes problems (starting file 40MB, ending file> 1GB, more than 2 hours)

    


    I would like, if possible, help me identify which videos will be viewed incorrectly on Android. Thank you very much in advance. Finally, this is the answer that ffmpeg gives when executing the line with which I fix the file :

    


    ffmpeg version n4.3.1-26-gca55240b8c Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3-win32 (GCC) 20200320
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libtwolame --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp
  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
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, concat, from 'list.txt':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Data: timed_id3 (ID3  / 0x20334449)
    Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, unknown/bt470bg/unknown, progressive), 320x568, 29.50 fps, 29.50 tbr, 90k tbn, 180k tbc
    Stream #0:2: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, mono, fltp, 64 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:2 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 000001efdbaee540] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000001efdbaee540] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 000001efdbaee540] 264 - core 161 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 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=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=22.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'd.mp4':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 320x568, q=-1--1, 29.50 fps, 15104 tbn, 29.50 tbc
    Metadata:
      encoder         : Lavc58.91.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc58.91.100 aac
More than 1000 frames duplicated    8960kB time=00:02:06.74 bitrate= 579.1kbits/s dup=999 drop=0 speed=15.7x
frame=13638 fps=468 q=-1.0 Lsize=   32033kB time=00:07:42.20 bitrate= 567.8kbits/s dup=4134 drop=0 speed=15.9x
video:25547kB audio:5995kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.557852%
[libx264 @ 000001efdbaee540] frame I:87    Avg QP:19.17  size: 12750
[libx264 @ 000001efdbaee540] frame P:4630  Avg QP:21.89  size:  4286
[libx264 @ 000001efdbaee540] frame B:8921  Avg QP:23.89  size:   583
[libx264 @ 000001efdbaee540] consecutive B-frames:  8.9%  8.6%  9.1% 73.4%
[libx264 @ 000001efdbaee540] mb I  I16..4: 12.2% 76.2% 11.6%
[libx264 @ 000001efdbaee540] mb P  I16..4:  3.7% 11.0%  0.8%  P16..4: 37.1% 16.2%  5.7%  0.0%  0.0%    skip:25.4%
[libx264 @ 000001efdbaee540] mb B  I16..4:  0.3%  0.9%  0.1%  B16..8: 30.4%  3.1%  0.3%  direct: 0.8%  skip:64.2%  L0:51.4% L1:44.3% BI: 4.3%
[libx264 @ 000001efdbaee540] 8x8 transform intra:71.2% inter:66.8%
[libx264 @ 000001efdbaee540] direct mvs  spatial:99.9% temporal:0.1%
[libx264 @ 000001efdbaee540] coded y,uvDC,uvAC intra: 52.5% 42.1% 5.5% inter: 9.7% 9.0% 0.3%
[libx264 @ 000001efdbaee540] i16 v,h,dc,p: 19% 21%  9% 50%
[libx264 @ 000001efdbaee540] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 11% 13%  6%  9% 11%  9% 11%  8%
[libx264 @ 000001efdbaee540] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23%  9%  8%  6% 14% 14% 11%  9%  6%
[libx264 @ 000001efdbaee540] i8c dc,h,v,p: 46% 20% 23% 12%
[libx264 @ 000001efdbaee540] Weighted P-Frames: Y:2.9% UV:0.8%
[libx264 @ 000001efdbaee540] ref P L0: 72.3% 12.2% 11.3%  2.1%  1.9%  0.2%  0.0%
[libx264 @ 000001efdbaee540] ref B L0: 93.1%  5.5%  1.1%  0.3%
[libx264 @ 000001efdbaee540] ref B L1: 97.6%  2.4%
[libx264 @ 000001efdbaee540] kb/s:452.67
[aac @ 000001efdbaee9c0] Qavg: 10682.834


    


  • 'pjsip-apps/Samples' Cannot functionally run vid_streamutil.c sample

    2 décembre 2020, par ShootingKIng

    Issue Description
After building[Build Varient=Debug, Build Config=x64] the latest pjproject-vs14 (retargeted to MSVS 2017, WINSDK=8.1, because my application works at these config) as per the build instruction on trac website. Successfully built pjsua and samples.

    


    I want to use only RTP + FFMPEG APIs (pjmedia) for my application from pjproject.

    


    My config_site.h

    


    #define PJMEDIA_HAS_VIDEO           1
#define PJMEDIA_HAS_FFMPEG          1


    


    FFMPEG (pre build from ffmpeg-N-100121-g052b4c3481-win64-gpl-shared.zip)

    


    But running the example, vid_streamutil.c did not work as expected (? Whats the normal expected behaviour ?).
It says

    


    ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)


    


    To Reproduce
Steps to reproduce the behavior :

    


      

    1. run vid_streamutil.exe with parameter : --codec=H264 --remote=127.0.0.1:5000 --play-file=test.avi --send-only
(test.avi file being a sample file)
    2. 


    


    Expected behavior
Get some RTP packets in wireshark while listening to ports 4000 and 5000 maybe ? I dont know whats the expected behaviour, documentation dosent say anything about this :(

    


    Logs/Screenshots
Couldn't catch anything on Wireshark.
Console log of vid_streamutil.exe is

    


    vid_streamutil.exe --codec=H264 --remote=127.0.0.1:5000 --send-only --play-file=test.avi
10:25:24.757 os_core_win32. !pjlib 2.10 for win32 initialized
 
10:25:24.840     wmme_dev.c  WMME found 12 devices:
10:25:24.858     wmme_dev.c   dev_id 0: Wave mapper  (in=2, out=2)
10:25:24.860     wmme_dev.c   dev_id 1: Headset Microphone (Arctis 7 Ch  (in=2, out=0)
10:25:24.860     wmme_dev.c   dev_id 2: Microphone (AMM Virtual Audio D  (in=2, out=0)
10:25:24.861     wmme_dev.c   dev_id 3: CABLE Output (VB-Audio Virtual   (in=2, out=0)
10:25:24.864     wmme_dev.c   dev_id 4: VoiceMeeter Output (VB-Audio Vo  (in=2, out=0)
10:25:24.864     wmme_dev.c   dev_id 5: Microphone (Realtek Audio)  (in=2, out=0)
10:25:24.865     wmme_dev.c   dev_id 6: Headphones (Arctis 7 Game)  (in=0, out=2)
10:25:24.866     wmme_dev.c   dev_id 7: Speakers / Headphones (Realtek   (in=0, out=2)
10:25:24.867     wmme_dev.c   dev_id 8: VoiceMeeter Input (VB-Audio Voi  (in=0, out=2)
10:25:24.884     wmme_dev.c   dev_id 9: Headset Earphone (Arctis 7 Chat  (in=0, out=2)
10:25:24.885     wmme_dev.c   dev_id 10: Speakers (AMM Virtual Audio Dev  (in=0, out=2)
10:25:24.887     wmme_dev.c   dev_id 11: Speakers (VB-Audio Virtual Cabl  (in=0, out=2)
10:25:24.887     wmme_dev.c  WMME initialized
10:25:24.890          pjlib  select() I/O Queue created (0000016B2C5F9608)
10:25:24.892 colorbar_dev.c  Colorbar video src initialized with 2 device(s):
10:25:24.915 colorbar_dev.c   0: Colorbar generator
10:25:24.935 colorbar_dev.c   1: Colorbar-active
10:25:24.956   avi_player.c  The AVI file has 2 streams.
10:25:24.976   avi_player.c  AVI file player 'test.avi' created with 2 media ports
10:25:24.994 vid_streamutil  Reading video stream 1280x720 H264 @30.00fps
10:25:25.033          rtp.c  pjmedia_rtp_session_init: ses=0000016B2C6793C8, default_pt=97, ssrc=0x294823
10:25:25.053 vstdec0000016B  Decoding channel created 720x480 I420<-H264 22/1(~22)fps
10:25:25.054          rtp.c  pjmedia_rtp_session_init: ses=0000016B2C62DF1C, default_pt=97, ssrc=0x294823
10:25:25.057 vstenc0000016B  Encoding channel created 1280x720 I420->H264 30/1(~30)fps
10:25:25.060 udp0000016B2C6  SO_RCVBUF set to 65536
10:25:25.061 udp0000016B2C6  SO_SNDBUF set to 65536
10:25:25.062   vid_stream.c  Video stream vstrm0000016B2C678508 created
10:25:25.086 vstenc0000016B  Encoder stream started
10:25:25.104 vstdec0000016B  Decoder stream paused
 [VID_STEAMUTIL] Stream is active, dir is send-only, sending to 127.0.0.1:5000
10:25:25.114 vid_streamutil  Sending 1280x720 H264 @30.00fps

Commands:
  q     Quit

Command: 10:25:25.147 ffmpeg_vid_cod !ffmpeg err -22: Invalid argument
10:25:25.222 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.237 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.250 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.251 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.287 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.311 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.316 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.341 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.353 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.369 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.386 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.387 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.411 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.415 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.452 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.469 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.486 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.496 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.506 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.527 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.547 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.568 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.576 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.604 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.606 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.627 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.648 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.668 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.686 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.711 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.731 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.752 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.769 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.778 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.804 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.827 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.833 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.868 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.886 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.895 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.921 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.923 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.943 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:25.963 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:25.983 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.003 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.019 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.038 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.041 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.060 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.081 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.086 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.109 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.130 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.138 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.162 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.183 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.202 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.220 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.228 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.260 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.281 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.312 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.321 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.321 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.322 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.323 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.323 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.324 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.324 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.333 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.353 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.353 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.381 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.401 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.414 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.429 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.449 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.469 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.480 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.510 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.531 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.553 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.571 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.594 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.615 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.636 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.653 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.671 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.678 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.714 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.736 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.754 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.777 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.781 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
10:25:26.816 ffmpeg_vid_cod  ffmpeg err -22: Invalid argument
10:25:26.836 vstenc0000016B  Codec encode_begin() error: Codec internal creation error (PJMEDIA_CODEC_EFAILED)
EOF while reading stdin, will quit now..

Commands:
  q     Quit

^C


    


    Desktop information :

    


      

    • OS, Distribution & Version : MS Windows 10 Home, 1909
    • 


    • PJSIP

        

      • version : 2.10
      • 


      • applied patch(es) : Nothing Extra
      • 


      • configure script params : Default
      • 


      • config_site.h contents : Aforementioned
      • 


      • related third party libraries & versions :
FFMPEG 4.3
      • 


      


    • 


    


    #define LIBAVCODEC_VERSION_MAJOR  58
#define LIBAVCODEC_VERSION_MINOR  91
#define LIBAVCODEC_VERSION_MICRO 100


    


    Additional context
I didnt change the default program that must except adding some printf's when program goes to exit label, without this it will be very difficult to know which part of the program jumped to exit : label. Anyways, here is the full code,

    


    vid_streamutil.c (with printfs)

    


    Any help is appreciated ^^'
Thanks.