[FFmpeg-trac] #8944(undetermined:new): 2 output fifos are not enough (4.1.6)

FFmpeg trac at avcodec.org
Sun Oct 25 15:28:49 EET 2020


#8944: 2 output fifos are not enough (4.1.6)
--------------------------------------+----------------------------------
             Reporter:  SteveNewcomb  |                     Type:  defect
               Status:  new           |                 Priority:  normal
            Component:  undetermined  |                  Version:  4.1.4
             Keywords:                |               Blocked By:
             Blocking:                |  Reproduced by developer:  0
Analyzed by developer:  0             |
--------------------------------------+----------------------------------
 Summary of the bug (a lacuna in the documentation??):

 When demuxing a US broadcast transport stream into its distinct programs,
 it is easy and efficient to write them as separate files, using a single
 ffmpeg process as shown below.  In my experience, there may be as many as
 5 such programs.  But I don't need them as separate *files*; I need them
 as separate *streams*, each being output to its own fifo (named pipe).

 As far as I can see from the documentation and from experience, ffmpeg can
 only write streams to 2 fifos, i.e. stdout (file descriptor 1, pipe:1) and
 stderr (file descriptor 2, pipe:2).  If I attempt to output to an existing
 named pipe, I get the message "File '<name>' already exists.  Exiting."
 How can I write each program to a separate named pipe?  (In any case I
 would like to reserve stdout and stderr for their normal purposes.)

 In the below example, I'm writing three programs to three separate files.
 It works well, and I need only a single ffmpeg instance to handle all
 three outputs.  How can I do the same thing with three named pipes
 (fifos)?

 How to reproduce:
 {{{
 % hdhomerun_config hdhr0 save /tuner0 - \
   | fmpeg -i - \
     -ignore_unknown -movflags frag_keyframe+empty_moov -c copy -f mp4 -map
 p:3:v -map p:3:a /tmp/hdhrprogram_09_3_ABC.fifo \
     -ignore_unknown -movflags frag_keyframe+empty_moov -c copy -f mp4 -map
 p:4:v -map p:4:a /tmp/hdhrprogram_09_4_CW.fifo \
     -ignore_unknown -movflags frag_keyframe+empty_moov -c copy -f mp4 -map
 p:5:v -map p:5:a /tmp/hdhrprogram_09_5_Charge_.fifo

 built on ...

 ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg
 developers
 built with gcc 8 (Debian 8.3.0-6)

 configuration: --prefix=/usr --extra-version='1~deb10u1'
 --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-avisynth --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-librsvg --enable-librubberband --enable-libshine
 --enable-libsnappy --enable-libsoxr --enable-libspeex --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-opengl --enable-sdl2
 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-
 chromaprint --enable-frei0r --enable-libx264 --enable-shared

 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8944>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list