wiki:

TracQuery

Trac Ticket Queries

In addition to reports, Trac provides support for custom ticket queries, used to display lists of tickets meeting a specified set of criteria.

To configure and execute a custom query, switch to the View Tickets module from the navigation bar, and select the Custom Query link.

Filters

When you first go to the query page the default filter will display tickets relevant to you:

  • If logged in then all open tickets it will display open tickets assigned to you.
  • If not logged in but you have specified a name or email address in the preferences then it will display all open tickets where your email (or name if email not defined) is in the CC list.
  • If not logged and no name/email defined in the preferences then all open issues are displayed.

Current filters can be removed by clicking the button to the left with the minus sign on the label. New filters are added from the pulldown lists at the bottom corners of the filters box ('And' conditions on the left, 'Or' conditions on the right). Filters with either a text box or a pulldown menu of options can be added multiple times to perform an or of the criteria.

You can use the fields just below the filters box to group the results based on a field, or display the full description for each ticket.

Once you've edited your filters click the Update button to refresh your results.

Clicking on one of the query results will take you to that ticket. You can navigate through the results by clicking the Next Ticket or Previous Ticket links just below the main menu bar, or click the Back to Query link to return to the query page.

You can safely edit any of the tickets and continue to navigate through the results using the Next/Previous/Back to Query links after saving your results. When you return to the query any tickets which were edited will be displayed with italicized text. If one of the tickets was edited such that it no longer matches the query criteria the text will also be greyed. Lastly, if a new ticket matching the query criteria has been created, it will be shown in bold.

The query results can be refreshed and cleared of these status indicators by clicking the Update button again.

Saving Queries

Trac allows you to save the query as a named query accessible from the reports module. To save a query ensure that you have Updated the view and then click the Save query button displayed beneath the results. You can also save references to queries in Wiki content, as described below.

Note: one way to easily build queries like the ones below, you can build and test the queries in the Custom report module and when ready - click Save query. This will build the query string for you. All you need to do is remove the extra line breaks.

Note: you must have the REPORT_CREATE permission in order to save queries to the list of default reports. The Save query button will only appear if you are logged in as a user that has been granted this permission. If your account does not have permission to create reports, you can still use the methods below to save a query.

You may want to save some queries so that you can come back to them later. You can do this by making a link to the query from any Wiki page.

[query:status=new|assigned|reopened&version=1.0 Active tickets against 1.0]

Which is displayed as:

Active tickets against 1.0

This uses a very simple query language to specify the criteria (see Query Language).

Alternatively, you can copy the query string of a query and paste that into the Wiki link, including the leading ? character:

[query:?status=new&status=assigned&status=reopened&group=owner Assigned tickets by owner]

Which is displayed as:

Assigned tickets by owner

Using the [[TicketQuery]] Macro

The TicketQuery macro lets you display lists of tickets matching certain criteria anywhere you can use WikiFormatting.

Example:

[[TicketQuery(version=0.6|0.7&resolution=duplicate)]]

This is displayed as:

No results

Just like the query: wiki links, the parameter of this macro expects a query string formatted according to the rules of the simple ticket query language. This also allows displaying the link and description of a single ticket:

[[TicketQuery(id=123)]]

This is displayed as:

#123
Fuzzed sample crashes ffplay

A more compact representation without the ticket summaries is also available:

[[TicketQuery(version=0.6|0.7&resolution=duplicate, compact)]]

This is displayed as:

No results

Finally, if you wish to receive only the number of defects that match the query, use the count parameter.

[[TicketQuery(version=0.6|0.7&resolution=duplicate, count)]]

This is displayed as:

0

Customizing the table format

You can also customize the columns displayed in the table format (format=table) by using col=<field> - you can specify multiple fields and what order they are displayed by placing pipes (|) between the columns like below:

[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]]

This is displayed as:

Results (1 - 3 of 6320)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#8392 needs_more_info ffprobe skip_frame nokey on wmv shows improper results emmdev
#8389 fixed Using rubberband filter with null output errors out derobert
#8387 invalid Anomalies with the tee muxer's transparent recovery with HLS and DASH streams Brainiarc7
1 2 3 4 5 6 7 8 9 10 11

Full rows

In table format you can also have full rows by using rows=<field> like below:

[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter,rows=description)]]

This is displayed as:

Results (1 - 3 of 6320)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#8392 needs_more_info ffprobe skip_frame nokey on wmv shows improper results emmdev
Description

Summary of the bug: How to reproduce:

ffprobe -select_streams v -show_entries frame=key_frame,pkt_dts_time,best_effort_timestamp_time,pict_type -sexagesimal inputfile.wmv
vs
ffprobe -select_streams v -skip_frame nokey -show_entries frame=key_frame,pkt_dts_time,best_effort_timestamp_time,pict_type -sexagesimal inputfile.wmv

Result for all frames (excerpt):

[FRAME]
key_frame=0
pkt_dts_time=0:00:09.976000
best_effort_timestamp_time=0:00:09.976000
pict_type=P
[/FRAME]
[FRAME]
key_frame=0
pkt_dts_time=0:00:10.009000
best_effort_timestamp_time=0:00:10.009000
pict_type=P
[/FRAME]
[FRAME]
key_frame=1
pkt_dts_time=0:00:10.043000
best_effort_timestamp_time=0:00:10.043000
pict_type=I
[/FRAME]
[FRAME]
key_frame=0
pkt_dts_time=0:00:10.076000
best_effort_timestamp_time=0:00:10.076000
pict_type=P
[/FRAME]

Result for just keyframes / skip_frame nokey (excerpt):

[FRAME]
key_frame=1
pkt_dts_time=0:00:10.009000
best_effort_timestamp_time=0:00:10.009000
pict_type=I
[/FRAME]
[FRAME]
key_frame=1
pkt_dts_time=0:00:20.019000
best_effort_timestamp_time=0:00:20.019000
pict_type=I
[/FRAME]

I've only supplied the corresponding "all frames" entries for the first entry of the "just keyframes" output, to keep it shorter.

It shows "all frames" listing the keyframe at 0:00:10.043000 when skip_frame nokey lists it at 0:00:10.009000, a timestamp which corresponds to a P frame.

On mp4/avc it's a mixed bag. When using pkt_dts_time, it behaves the same as above, but when using pkt_pts_time it works fine, both outputs (all & keyframes) show the same matching timestamps.

The file in question is really large, so I can't upload it, wmv/wvc1, has no pkt_pts_time (i.e. it's N/A), which is why I used pkt_dts_time and best_effort_timestamp_time (which in this case seems to be one and the same).

#8389 fixed Using rubberband filter with null output errors out derobert
Description

Summary of the bug:

With some files, running -filter:a rubberband with -f null results in ffmpeg erroring out with:

RubberBandStretcher::Impl::process: Cannot process again after final chunk
Error while filtering: Operation not permitted

This happens with many files, but one that fails is a public-domain recording of In the Hall of the Mountain King by the Musopen Symphony, which I've attached.

How to reproduce:

Note: this is Debian unstable (sid) in a Docker container. ffmpeg is the Debian build.

$ ffmpeg -nostdin  -nostats -loglevel info -i MountainKing.flac -filter:a 'rubberband=tempo=1.3:pitchq=quality:window=short' -f null -  
ffmpeg version 4.2.1-2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9 (Debian 9.2.1-15)
  configuration: --prefix=/usr --extra-version=2 --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
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, flac, from 'MountainKing.flac':
  Metadata:
    genre           : Classical
    encoder         : Lavf57.71.100
    REPLAYGAIN_REFERENCE_LOUDNESS: 89.0 dB
    REPLAYGAIN_TRACK_GAIN: -4.50 dB
    REPLAYGAIN_TRACK_PEAK: 0.89036036
    REPLAYGAIN_ALBUM_GAIN: -1.08 dB
    REPLAYGAIN_ALBUM_PEAK: 0.89036036
    LICENSE         : http://creativecommons.org/publicdomain/mark/1.0/
    TITLE           : Peer Gynt Suite no. 1, op. 46: IV. In the Hall of the Mountain King
    RELEASECOUNTRY  : XW
    TOTALDISCS      : 1
    LABEL           : Musopen
    TOTALTRACKS     : 145
    COMPOSERSORT    : Grieg, Edvard
    MUSICBRAINZ_ALBUMARTISTID: 89ad4ac3-39f7-470e-963a-56509c546377
    COMPOSER        : Edvard Grieg
    DATE            : 2012-08
    disc            : 1
    TRACKTOTAL      : 145
    MUSICBRAINZ_RELEASETRACKID: f70f1357-9567-3354-9a2f-0a10dd03633e
    ALBUMARTISTSORT : Various Artists
    ORIGINALDATE    : 2012-08
    LANGUAGE        : zxx
    SCRIPT          : Latn
    WORK            : Peer Gynt Suite no. 1, op. 46: IV. I Dovregubbens hall
    MUSICBRAINZ_ALBUMID: 954bd739-75ac-410e-adc7-1bf80b0157cb
    RELEASESTATUS   : official
    album_artist    : Various Artists
    ACOUSTID_ID     : e45ce194-6069-4e63-bd61-360177b14a27
    ALBUM           : The Musopen DVD
    MUSICBRAINZ_ARTISTID: 013c8e5b-d72a-4cd3-8dee-6c64d6125823
    MEDIA           : Digital Media
    RELEASETYPE     : other;compilation
    ORIGINALYEAR    : 2012
    PERFORMER       : Musopen Symphony Orchestra (orchestra)
    ARTIST          : Edvard Grieg
    DISCTOTAL       : 1
    COMPILATION     : 1
    MUSICBRAINZ_RELEASEGROUPID: 341fc147-d4e5-45a8-8339-d00e5e1b8af5
    MUSICBRAINZ_WORKID: 6aabde58-948e-3120-a9a3-f43257f04b81
    MUSICBRAINZ_TRACKID: 64abd718-c35c-44ad-87f7-df1d3d8938fc
    ARTISTSORT      : Grieg, Edvard
    ARTISTS         : Edvard Grieg
    track           : 61
  Duration: 00:02:34.09, start: 0.000000, bitrate: 2394 kb/s
    Stream #0:0: Audio: flac, 48000 Hz, stereo, s32 (24 bit)
    Side data:
      replaygain: track gain - -4.500000, track peak - 0.000021, album gain - -1.080000, album peak - 0.000021, 
    Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 542x407 [SAR 1:1 DAR 542:407], 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Cover (front)
    Stream #0:2: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 3648x2736, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:3: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 3648x2736, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:4: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 3648x2736, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:5: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 3648x2736, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:6: Video: mjpeg (Baseline), yuvj440p(pc, bt470bg/unknown/unknown), 2736x3648, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:7: Video: mjpeg (Baseline), yuvj440p(pc, bt470bg/unknown/unknown), 2736x3648, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:8: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 3648x2736, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:9: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 3648x2736, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
    Stream #0:10: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 3648x2736, 90k tbr, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Other
Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg (native) -> wrapped_avframe (native))
  Stream #0:0 -> #0:1 (flac (native) -> pcm_s16le (native))
Output #0, null, to 'pipe:':
  Metadata:
    genre           : Classical
    track           : 61
    REPLAYGAIN_REFERENCE_LOUDNESS: 89.0 dB
    REPLAYGAIN_TRACK_GAIN: -4.50 dB
    REPLAYGAIN_TRACK_PEAK: 0.89036036
    REPLAYGAIN_ALBUM_GAIN: -1.08 dB
    REPLAYGAIN_ALBUM_PEAK: 0.89036036
    LICENSE         : http://creativecommons.org/publicdomain/mark/1.0/
    TITLE           : Peer Gynt Suite no. 1, op. 46: IV. In the Hall of the Mountain King
    RELEASECOUNTRY  : XW
    TOTALDISCS      : 1
    LABEL           : Musopen
    TOTALTRACKS     : 145
    COMPOSERSORT    : Grieg, Edvard
    MUSICBRAINZ_ALBUMARTISTID: 89ad4ac3-39f7-470e-963a-56509c546377
    COMPOSER        : Edvard Grieg
    DATE            : 2012-08
    disc            : 1
    TRACKTOTAL      : 145
    MUSICBRAINZ_RELEASETRACKID: f70f1357-9567-3354-9a2f-0a10dd03633e
    ALBUMARTISTSORT : Various Artists
    ORIGINALDATE    : 2012-08
    LANGUAGE        : zxx
    SCRIPT          : Latn
    WORK            : Peer Gynt Suite no. 1, op. 46: IV. I Dovregubbens hall
    MUSICBRAINZ_ALBUMID: 954bd739-75ac-410e-adc7-1bf80b0157cb
    RELEASESTATUS   : official
    album_artist    : Various Artists
    ACOUSTID_ID     : e45ce194-6069-4e63-bd61-360177b14a27
    ALBUM           : The Musopen DVD
    MUSICBRAINZ_ARTISTID: 013c8e5b-d72a-4cd3-8dee-6c64d6125823
    MEDIA           : Digital Media
    RELEASETYPE     : other;compilation
    ORIGINALYEAR    : 2012
    PERFORMER       : Musopen Symphony Orchestra (orchestra)
    ARTIST          : Edvard Grieg
    DISCTOTAL       : 1
    COMPILATION     : 1
    MUSICBRAINZ_RELEASEGROUPID: 341fc147-d4e5-45a8-8339-d00e5e1b8af5
    MUSICBRAINZ_WORKID: 6aabde58-948e-3120-a9a3-f43257f04b81
    MUSICBRAINZ_TRACKID: 64abd718-c35c-44ad-87f7-df1d3d8938fc
    ARTISTSORT      : Grieg, Edvard
    ARTISTS         : Edvard Grieg
    encoder         : Lavf58.29.100
    Stream #0:0: Video: wrapped_avframe, yuvj420p(progressive), 542x407 [SAR 1:1 DAR 542:407], q=2-31, 200 kb/s, 90k fps, 90k tbn, 90k tbc (attached pic)
    Metadata:
      comment         : Cover (front)
      encoder         : Lavc58.54.100 wrapped_avframe
    Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      encoder         : Lavc58.54.100 pcm_s16le
    Side data:
      replaygain: track gain - -4.500000, track peak - 0.000021, album gain - -1.080000, album peak - 0.000021, 
RubberBandStretcher::Impl::process: Cannot process again after final chunk
[1;31mError while filtering: Operation not permitted
[0mframe=    1 fps=0.7 q=-0.0 Lsize=N/A time=00:00:26.37 bitrate=N/A speed=18.3x    
video:1kB audio:4945kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
#8387 invalid Anomalies with the tee muxer's transparent recovery with HLS and DASH streams Brainiarc7
Description

Summary of the bug:

Reproduced with this version compiled a few hours ago:

ffmpeg 
ffmpeg version N-95809-g804fce8bc2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --pkg-config-flags=--static --enable-static --disable-shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/include --extra-ldflags=-L/home/brainiarc7/lib --enable-cuda-nvcc --enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc --enable-libass --disable-debug --enable-libvorbis --enable-libvpx --enable-libdrm --enable-opencl --enable-libxml2 --enable-gpl --cpu=native --enable-opengl --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-openssl --enable-librtmp --enable-libpulse --enable-libzvbi --enable-librav1e --enable-pic --nvccflags='-gencode arch=compute_75,code=sm_75 -O2' --extra-libs='-lpthread -lm -lz -ldl' --enable-nonfree
  libavutil      56. 36.100 / 56. 36.100
  libavcodec     58. 62.100 / 58. 62.100
  libavformat    58. 35.100 / 58. 35.100
  libavdevice    58.  9.101 / 58.  9.101
  libavfilter     7. 66.100 /  7. 66.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

The tee (and fifo) muxer(s) is(/are) not able to adequately recover both HLS and DASH streams, when explicitly configured to do so. Take a look at the example below.

How to reproduce: Take a look at the command below, which demonstrates a scenario of generating multiple HLS and DASH streams from one command:

#! /bin/bash
HLSOPTS=':use_fifo=1:fifo_options=recovery_wait_time=1\\:attempt_recovery=1\\:restart_with_keyframe=1\\:recover_any_error=1:f=hls:hls_wrap=6:hls_time=6:hls_list_size=6:hls_segment_type=fmp4:ignore_io_errors=1'
DASHOPTS='use_fifo=1:fifo_options=recovery_wait_time=1\\:attempt_recovery=1\\:restart_with_keyframe=1\\:recover_any_error=1:f=dash:seg_duration=6:window_size=6:extra_window_size=0:ignore_io_errors=1'


ffmpeg -t 3600 -nostdin -y \
   -fflags +autobsf+genpts-fastseek+igndts -vsync 1 \
   -f mpegts -fix_teletext_pts 1 -scan_all_pmts 1 -merge_pmt_versions 1 \
   -re -i 'feeds.ts' -filter_complex \
  "[i:0x100]yadif,split=6[s0][s1][s2][s3][s4][s5]; \
   [s0]scale=w=1920:h=1080,split=2[v0][v1]; \
   [s1]scale=w=1280:h=720,split=2[v2][v3]; \
   [s2]scale=w=960:h=540,format=nv12[v4]; \
   [s3]scale=w=768:h=432,split=2[v5][v6]; \
   [s4]scale=w=640:h=360[v7]; \
   [s5]scale=w=416:h=234[v8]" \
  -c:a aac -ac 2 -ar 48000 -b:a 128k \
  -b:v:0 7800k -minrate:v:0 7800k -maxrate:v:0 7800k -bufsize:v:0 7800k -c:v:0 libx264 \
  -profile:v:0 high -preset:v:0 fast -tune:v:0 zerolatency -g:v:0 60 -bf:v:0 0 -x264opts "no-scenecut" \
  -b:v:1 6000k -minrate:v:1 6000k -maxrate:v:1 6000k -bufsize:v:1 6000k -c:v:1 libx264 \
  -profile:v:1 high -preset:v:1 fast -tune:v:1 zerolatency -g:v:1 60 -bf:v:1 0 -x264opts "no-scenecut" \
  -b:v:2 4500k -minrate:v:2 4500k -maxrate:v:2 4500k -bufsize:v:2 4500k -c:v:2 libx264 \
  -profile:v:2 high -preset:v:2 fast -tune:v:2 zerolatency -g:v:2 60 -bf:v:2 0 -x264opts "no-scenecut" \
  -b:v:3 3000k -minrate:v:3 3000k -maxrate:v:3 3000k -bufsize:v:3 3000k -c:v:3 libx264 \
  -profile:v:3 main -preset:v:3 fast -tune:v:3 zerolatency -g:v:3 60 -bf:v:3 0 -x264opts "no-scenecut" \
  -b:v:4 2000k -minrate:v:4 2000k -maxrate:v:4 2000k -bufsize:v:4 2000k -c:v:4 libx264 \
  -profile:v:4 main -preset:v:4 fast -tune:v:4 zerolatency -g:v:4 60 -bf:v:4 0 -x264opts "no-scenecut" \
  -b:v:5 1100k -minrate:v:5 1100k -maxrate:v:5 1100k -bufsize:v:5 1100k -c:v:5 libx264 \
  -profile:v:5 main -preset:v:5 fast -tune:v:5 zerolatency -g:v:5 60 -bf:v:5 0 -x264opts "no-scenecut" \
  -b:v:6 730k -minrate:v:6 730k -maxrate:v:6 730k -bufsize:v:6 730k -c:v:6 libx264 \
  -profile:v:6 main -preset:v:6 fast -tune:v:6 zerolatency -g:v:6 60 -bf:v:6 0 -x264opts "no-scenecut" \
  -b:v:7 365k -minrate:v:7 365k -maxrate:v:7 365k -bufsize:v:7 365k -c:v:7 libx264 \
  -profile:v:7 baseline -preset:v:7 fast -tune:v:7 zerolatency -g:v:7 60 -bf:v:7 0 -x264opts "no-scenecut" \
  -b:v:8 145k -minrate:v:8 145k -maxrate:v:8 145k -bufsize:v:8 145k -c:v:8 libx264 \
  -profile:v:8 baseline -preset:v:8 fast -tune:v:8 zerolatency -g:v:8 60 -bf:v:8 0 -x264opts "no-scenecut" \
  -map "[v0]" -map "[v1]" -map "[v2]" -map "[v3]" -map "[v4]" -map "[v5]" -map "[v6]" -map "[v7]" -map "[v8]" -map 'i:0x101' \
  -flags +global_header+cgop \
  -max_muxing_queue_size 90000 -f tee  \
  "[select=\'v:0,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-9/manifest.m3u8'| \
   [select=\'v:1,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-8/manifest.m3u8'| \
   [select=\'v:2,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-7/manifest.m3u8'| \
   [select=\'v:3,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-6/manifest.m3u8'| \
   [select=\'v:4,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-5/manifest.m3u8'| \
   [select=\'v:5,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-4/manifest.m3u8'| \
   [select=\'v:6,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-3/manifest.m3u8'| \
   [select=\'v:7,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-2/manifest.m3u8'| \
   [select=\'v:8,a\'$HLSOPTS]'/home/brainiarc7/Desktop/src/test/H264/Gear-1/manifest.m3u8'| \
   [$DASHOPTS:adaptation_sets='id=0,streams=v id=1,streams=a']'/home/brainiarc7/Desktop/src/test/DASH/manifest.mpd'"

To simulate failure, one can either rename or delete a sub-directory to which the tee muxer's fifo slaves are writing packets to.

Here are the observations:

(a). With HLS:

  1. Rename operations will recover successfully once the original target directory name is restored. This works flawlessly, and the content therein is playable.
  1. Target directory deletion and recreation (which simulates a failure scenario with network file systems such as NFS, etc) results in a case whereby the underlying HLS muxer recovers successfully, BUT does not restore the init.mp4 file when the segment format is set to mp4.

Here's a snapshot of such a scenario, where the target directory is deleted and recreated:

pwd
/home/brainiarc7/Desktop/src/test/H264/Gear-3
brainiarc7@lucifer:~/Desktop/src/test/H264/Gear-3$ ls -al 
total 3796
drwxr-xr-x  2 brainiarc7 brainiarc7   4096 Nov 20 01:04 .
drwxr-xr-x 12 brainiarc7 brainiarc7   4096 Nov 19 22:56 ..
-rw-r--r--  1 brainiarc7 brainiarc7   1309 Nov 20 00:52 init.mp4
-rw-r--r--  1 brainiarc7 brainiarc7 627855 Nov 20 01:03 manifest0.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 624993 Nov 20 01:04 manifest1.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 685980 Nov 20 01:03 manifest2.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 645685 Nov 20 01:03 manifest3.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 583939 Nov 20 01:03 manifest4.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 690322 Nov 20 01:03 manifest5.m4s
-rw-r--r--  1 brainiarc7 brainiarc7    292 Nov 20 01:04 manifest.m3u8

Now we delete that directory, recreate it and run ls-al:

brainiarc7@lucifer:~/Desktop/src/test/H264/Gear-3$ cd ..
brainiarc7@lucifer:~/Desktop/src/test/H264$ rm -fr Gear-3/
brainiarc7@lucifer:~/Desktop/src/test/H264$ mkdir -p Gear-3
brainiarc7@lucifer:~/Desktop/src/test/H264$ cd Gear-3/
brainiarc7@lucifer:~/Desktop/src/test/H264/Gear-3$ ls -al
total 3700
drwxr-xr-x  2 brainiarc7 brainiarc7   4096 Nov 20 01:06 .
drwxr-xr-x 12 brainiarc7 brainiarc7   4096 Nov 20 01:05 ..
-rw-r--r--  1 brainiarc7 brainiarc7 692562 Nov 20 01:05 manifest0.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 619051 Nov 20 01:06 manifest1.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 667125 Nov 20 01:05 manifest2.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 645877 Nov 20 01:05 manifest3.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 516622 Nov 20 01:05 manifest4.m4s
-rw-r--r--  1 brainiarc7 brainiarc7 619269 Nov 20 01:05 manifest5.m4s
-rw-r--r--  1 brainiarc7 brainiarc7    292 Nov 20 01:06 manifest.m3u8

Despite the underlying hls muxer recovering, see that the init.mp4 was not recreated. The content therein is therefore rendered unusable.

From mpv, we get:

brainiarc7@lucifer:~/Desktop/src/test$ cd H264/Gear-3/
brainiarc7@lucifer:~/Desktop/src/test/H264/Gear-3$ ls
manifest0.m4s  manifest1.m4s  manifest2.m4s  manifest3.m4s  manifest4.m4s  manifest5.m4s  manifest.m3u8
brainiarc7@lucifer:~/Desktop/src/test/H264/Gear-3$ mpv manifest.m3u8 
[ffmpeg/demuxer] hls: Failed to open an initialization section in playlist 0
[ffmpeg/demuxer] hls: Error when loading first segment 'manifest3.m4s'
[lavf] avformat_open_input() failed
[lavf] Leaking 1 nested connections (FFmpeg bug).

Playing: manifest3.m4s
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
Failed to recognize file format.

Playing: manifest4.m4s
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
Failed to recognize file format.

Playing: manifest5.m4s
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
Failed to recognize file format.

Playing: manifest0.m4s
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
Failed to recognize file format.

Playing: manifest1.m4s
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
Failed to recognize file format.

Playing: manifest2.m4s
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 1
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 2
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding trex (id 1)
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: could not find corresponding track id 0
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: trun track id unknown, no tfhd was found
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: error reading header
[lavf] avformat_open_input() failed
Failed to recognize file format.


Exiting... (Some errors happened)

And with ffplay:

ffplay manifest.m3u8 
ffplay version N-95809-g804fce8bc2 Copyright (c) 2003-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --pkg-config-flags=--static --enable-static --disable-shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/include --extra-ldflags=-L/home/brainiarc7/lib --enable-cuda-nvcc --enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc --enable-libass --disable-debug --enable-libvorbis --enable-libvpx --enable-libdrm --enable-opencl --enable-libxml2 --enable-gpl --cpu=native --enable-opengl --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-openssl --enable-librtmp --enable-libpulse --enable-libzvbi --enable-librav1e --enable-pic --nvccflags='-gencode arch=compute_75,code=sm_75 -O2' --extra-libs='-lpthread -lm -lz -ldl' --enable-nonfree
  libavutil      56. 36.100 / 56. 36.100
  libavcodec     58. 62.100 / 58. 62.100
  libavformat    58. 35.100 / 58. 35.100
  libavdevice    58.  9.101 / 58.  9.101
  libavfilter     7. 66.100 /  7. 66.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[hls @ 0x7f3528000b80] Skip ('#EXT-X-VERSION:7')
[hls @ 0x7f3528000b80] Opening 'init.mp4' for reading
[hls @ 0x7f3528000b80] Failed to open an initialization section in playlist 0
[hls @ 0x7f3528000b80] Error when loading first segment 'manifest3.m4s'
manifest.m3u8: No such file or directory

(b). On to DASH:

If we rename OR delete the target directories to which the underlying DASH muxer is writing to with the aforementioned muxer options, the tee muxer slaves (fifo'd) claims that the recovery is successful, BUT with the following spurious error in the console:

[fifo @ 0x55e25c9661c0] Recovery successful
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream1-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream2-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream3-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream4-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream5-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream6-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream7-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream8-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream9-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 20977892936 >= 20957937
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/manifest.mpd.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream0.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream1.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream2.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream3.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream4.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream5.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream6.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream7.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream8.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream9.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream0-00001.m4s.tmp' for writing
[fifo @ 0x55e25c9661c0] Recovery successful
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream1-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream2-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream3-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream4-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream5-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream6-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream7-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream8-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream9-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 20978894937 >= 20958938
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/manifest.mpd.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream0.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream1.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream2.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream3.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream4.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream5.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream6.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream7.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream8.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream9.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream0-00001.m4s.tmp' for writing
[fifo @ 0x55e25c9661c0] Recovery successful
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream1-00001.m4s.tmp' for writing
^C[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream2-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream3-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream4-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream5-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream6-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream7-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream8-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream9-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 20979896938 >= 20959939
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/manifest.mpd.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream0.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream1.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream2.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream3.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream4.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream5.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream6.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream7.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream8.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream9.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream0-00001.m4s.tmp' for writing
[fifo @ 0x55e25c9661c0] Recovery successful
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream1-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream2-00001.m4s.tmp' for writing
[hls @ 0x55e25c912000] Opening '/home/brainiarc7/Desktop/src/test/H264/Gear-9/manifest2.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream3-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream4-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream5-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream6-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream7-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream8-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream9-00001.m4s.tmp' for writing
[dash @ 0x55e25c970280] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 20980898939 >= 20960940
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/manifest.mpd.tmp' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream0.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream1.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream2.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream3.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream4.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream5.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream6.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream7.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream8.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/init-stream9.m4s' for writing
[dash @ 0x55e25c970280] Opening '/home/brainiarc7/Desktop/src/test/DASH/chunk-stream0-00001.m4s.tmp' for writing
[fifo @ 0x55e25c9661c0] Recovery successful

Which is then repeated non-stop: "Application provided invalid, non monotonically increasing dts to muxer in stream 0"

The content rendered there-in, even after the directory is renamed or recreated with the original name is definitely unplayable. Both ffprobe and mpv die on attempting playback:

ffplay manifest.mpd 
ffplay version N-95809-g804fce8bc2 Copyright (c) 2003-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --pkg-config-flags=--static --enable-static --disable-shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/include --extra-ldflags=-L/home/brainiarc7/lib --enable-cuda-nvcc --enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/ --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc --enable-libass --disable-debug --enable-libvorbis --enable-libvpx --enable-libdrm --enable-opencl --enable-libxml2 --enable-gpl --cpu=native --enable-opengl --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-openssl --enable-librtmp --enable-libpulse --enable-libzvbi --enable-librav1e --enable-pic --nvccflags='-gencode arch=compute_75,code=sm_75 -O2' --extra-libs='-lpthread -lm -lz -ldl' --enable-nonfree
  libavutil      56. 36.100 / 56. 36.100
  libavcodec     58. 62.100 / 58. 62.100
  libavformat    58. 35.100 / 58. 35.100
  libavdevice    58.  9.101 / 58.  9.101
  libavfilter     7. 66.100 /  7. 66.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[dash @ 0x7fb1dc000b80] decoding for stream 0 failed=    0B f=0/0   
[dash @ 0x7fb1dc000b80] decoding for stream 1 failed
[dash @ 0x7fb1dc000b80] decoding for stream 2 failed
[dash @ 0x7fb1dc000b80] decoding for stream 3 failed
[dash @ 0x7fb1dc000b80] decoding for stream 4 failed
[dash @ 0x7fb1dc000b80] decoding for stream 5 failed
[dash @ 0x7fb1dc000b80] decoding for stream 6 failed
[dash @ 0x7fb1dc000b80] decoding for stream 7 failed
[dash @ 0x7fb1dc000b80] decoding for stream 8 failed
Input #0, dash, from 'manifest.mpd':
  Duration: 00:00:33.00, start: 1397.396000, bitrate: 1 kb/s
  Program 0 
    Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 7800000
      id              : 0
    Stream #0:1: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 6000000
      id              : 1
    Stream #0:2: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 4500000
      id              : 2
    Stream #0:3: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 3000000
      id              : 3
    Stream #0:4: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 960x540 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 2000000
      id              : 4
    Stream #0:5: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 768x432 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 1100000
      id              : 5
    Stream #0:6: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 768x432 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 730000
      id              : 6
    Stream #0:7: Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 365000
      id              : 7
    Stream #0:8: Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 416x234 [SAR 1:1 DAR 16:9], Closed Captions, 0 kb/s, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 145000
      id              : 8
    Stream #0:9: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 0 kb/s
    Metadata:
      variant_bitrate : 128000
      id              : 9
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 0
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 2
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 3
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 4
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 5
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 6
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 7
[dash @ 0x7fb1dc000b80] No longer receiving stream_index 8

And with mpv:

mpv manifest.mpd 
 (+) Video --vid=1 'bitrate 7800000' (h264 1920x1080)
     Video --vid=2 'bitrate 6000000' (h264 1920x1080)
     Video --vid=3 'bitrate 4500000' (h264 1280x720)
     Video --vid=4 'bitrate 3000000' (h264 1280x720)
     Video --vid=5 'bitrate 2000000' (h264 960x540)
     Video --vid=6 'bitrate 1100000' (h264 768x432)
     Video --vid=7 'bitrate 730000' (h264 768x432)
     Video --vid=8 'bitrate 365000' (h264 640x360)
     Video --vid=9 'bitrate 145000' (h264 416x234)
 (+) Audio --aid=1 'bitrate 128000' (aac 2ch 48000Hz)
AO: [pulse] 48000Hz stereo 2ch float


Exiting... (End of file)

In conclusion: The tee (and fifo muxer combination) cannot transparently recover HLS (with mp4 as segment format) and DASH streams, as documented above.

1 2 3 4 5 6 7 8 9 10 11

Query Language

query: TracLinks and the [[TicketQuery]] macro both use a mini “query language” for specifying query filters. Basically, the filters are separated by ampersands (&). Each filter then consists of the ticket field name, an operator, and one or more values. More than one value are separated by a pipe (|), meaning that the filter matches any of the values. To include a literal & or | in a value, escape the character with a backslash (\).

The available operators are:

= the field content exactly matches one of the values
~= the field content contains one or more of the values
^= the field content starts with one of the values
$= the field content ends with one of the values

All of these operators can also be negated:

!= the field content matches none of the values
!~= the field content does not contain any of the values
!^= the field content does not start with any of the values
!$= the field content does not end with any of the values

The date fields created and modified can be constrained by using the = operator and specifying a value containing two dates separated by two dots (..). Either end of the date range can be left empty, meaning that the corresponding end of the range is open. The date parser understands a few natural date specifications like "3 weeks ago", "last month" and "now", as well as Bugzilla-style date specifications like "1d", "2w", "3m" or "4y" for 1 day, 2 weeks, 3 months and 4 years, respectively. Spaces in date specifications can be left out to avoid having to quote the query string.

created=2007-01-01..2008-01-01 query tickets created in 2007
created=lastmonth..thismonth query tickets created during the previous month
modified=1weekago.. query tickets that have been modified in the last week
modified=..30daysago query tickets that have been inactive for the last 30 days

See also: TracTickets, TracReports, TracGuide

Last modified 4 years ago Last modified on Jul 6, 2015, 10:44:56 PM