[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