Opened 3 years ago
Last modified 2 years ago
#8660 new defect
mpegts recognize s302m as private data stream
Reported by: | jb_alvarado | Owned by: | |
---|---|---|---|
Priority: | minor | Component: | avformat |
Version: | git-master | Keywords: | mpegts |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
When using s302m audio codec in mpegts, the current ffmpeg version gives then warning:
[mpegts @ 0x55fa474108c0] Stream 1, codec s302m, is muxed as a private data stream and may not be recognized upon reading.
That is a wrong message, because s302m should be listed as a audio codec.
I read that the list of supported codecs are incomplete. Would be good to update it.
How to reproduce:
% ffmpeg -i input -c:v mpeg2video -c:a s302m -strict -2 -ar 48000 -ac 2 -f mpegts /dev/null
Would it be correct to add in mpegts.h:
#define STREAM_TYPE_AUDIO_S302M 0x84
And in mpegtsenc.c:
case AV_CODEC_ID_S302M: stream_type = STREAM_TYPE_AUDIO_S302M; break;
? Or does it need more effort?
When yes, I could try to prepare a patch.
Change History (6)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
To make this a valid ticket please provide the actual command line you tested together with the complete, uncut console output and explain what is wrong with the output file.
comment:3 by , 3 years ago
Sorry, here is complete output:
ffmpeg -f lavfi -i nullsrc=s=256x256:d=30 -f lavfi -i anullsrc=r=48000:cl=stereo -shortest -c:v mpeg2video -c:a s302m -strict -2 -ar 48000 -ac 2 -y -f mpegts /dev/null ffmpeg version git-2020-05-10-a058d81 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 10 (GCC) configuration: --disable-debug --disable-shared --disable-doc --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-avfilter --enable-zlib --enable-fontconfig --enable-libfdk-aac --enable-libfribidi --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libsoxr --enable-libsrt --enable-libtwolame --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzimg --enable-libzmq --enable-nonfree --enable-opengl --enable-openssl --enable-pic libavutil 56. 43.100 / 56. 43.100 libavcodec 58. 83.100 / 58. 83.100 libavformat 58. 43.100 / 58. 43.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 80.100 / 7. 80.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Input #0, lavfi, from 'nullsrc=s=256x256:d=30': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 256x256 [SAR 1:1 DAR 1:1], 25 tbr, 25 tbn, 25 tbc Input #1, lavfi, from 'anullsrc=r=48000:cl=stereo': Duration: N/A, start: 0.000000, bitrate: 768 kb/s Stream #1:0: Audio: pcm_u8, 48000 Hz, stereo, u8, 768 kb/s Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native)) Stream #1:0 -> #0:1 (pcm_u8 (native) -> s302m (native)) Press [q] to stop, [?] for help Output #0, mpegts, to '/dev/null': Metadata: encoder : Lavf58.43.100 Stream #0:0: Video: mpeg2video (Main), yuv420p(progressive), 256x256 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc Metadata: encoder : Lavc58.83.100 mpeg2video Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A Stream #0:1: Audio: s302m, 48000 Hz, stereo, s16, 1920 kb/s Metadata: encoder : Lavc58.83.100 s302m [mpegts @ 0x393bf80] Stream 1, codec s302m, is muxed as a private data stream and may not be recognized upon reading. [Parsed_nullsrc_0 @ 0x38ff5c0] EOF timestamp not reliable frame= 750 fps=0.0 q=2.0 Lsize= 7566kB time=00:00:29.99 bitrate=2066.3kbits/s speed= 128x video:170kB audio:7040kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.930064%
The file is working, but the message is confusing, because it implies that the audio codec is not known.
comment:4 by , 3 years ago
Component: | undetermined → avformat |
---|---|
Keywords: | mpegts added |
Priority: | normal → minor |
Version: | unspecified → git-master |
(Your command line does not produce a „file“.)
Did you test an output file with software not based on FFmpeg?
comment:5 by , 3 years ago
I have no access to players which are not based on ffmpeg and support s302m audio. But gnome video player, mpv and ffplay will play that file. Mediainfo shows also the s302m audio as audio line and not data stream. So I think fmpeg just gives a wrong warning.
What I read here, is that the recognized list is not complete. So I guess the audio codec just needs to be added.
comment:6 by , 2 years ago
But gnome video player, mpv and ffplay will play that file.
But not dolby E. Or any non-pcm-audio (Dolby E is type 28).
Is not smth like dolby E in s302m an actual audio not s302m?