[Ffmpeg-devel-irc] ffmpeg.log.20180120

burek burek021 at gmail.com
Sun Jan 21 03:05:01 EET 2018


[00:21:05 CET] <AeroNotix> I just compiled master ffmpeg (along with ffplay) and -autoexit behaves properly.
[00:21:26 CET] <alexpigment> AeroNotix: good to hear
[00:21:37 CET] <alexpigment> no explanation for what was going on, but a fix is a fix ;)
[00:21:54 CET] <AeroNotix> Interesting for sure
[00:22:12 CET] <AeroNotix> I'll try compiling the exact same version once I figure out how you're tagging releases and try again
[00:22:30 CET] <AeroNotix> also, love the fact that `make -j N` works :) Sometimes you find projects where it messes things up :)
[01:42:26 CET] <JASTON> Hey gang, does anyone know of a way to use the hls muxer in conjunction with var_stream_map to create different resolution renditions?  The documentation examples only show how to change up bitrates, but I'm sure I'm missing something:  https://ffmpeg.org/ffmpeg-formats.html#hls
[03:48:25 CET] <friki> Hi, is tere an equivalent command of "mplayer -cache 100 - " for ffplay?
[03:49:40 CET] <friki> I've tested -probesze and -analyzeduration without luck
[03:52:09 CET] <DHE> that's not a cache. it's to tell if how much effort to put into guessing the input type
[03:54:39 CET] <friki> i'm piping an audio stream to ffplay and it ffplay takes several minutes to start playing
[03:55:19 CET] <friki> the audio stream comes from FM radio station (with tzap)
[05:51:42 CET] <illuminated> I'm using vlc player to play a playlist and output an http mpegts stream that I'm inputting into ffmpeg running on another box that's outputting hls segments.  When the file in vlc changes to the next in the playlist ffmpeg recognizes there's a new file, says so, and then stops outputting new m3u8 and .ts files.
[05:51:56 CET] <illuminated> How can I stream hls through vlc's file changes?
[11:35:46 CET] <czarek> Hello I've been trying to compile FFMPEG against DEVKITPRO (armv6k architecture) it generally compiles well but no matter what switches I try network support is always disabled... I take it that something in DEVKITPRO libraries is missing. What are the prerequisites to get network support in such configuration?
[11:36:44 CET] <czarek> (just for the records cross compiling to x86 architecture works with no problem)
[11:37:27 CET] <sfan5> these: https://github.com/ffmpeg/ffmpeg/blob/master/configure#L5573
[11:44:40 CET] <czarek> yeah thank you so much... it looks like netinet/sctp.h is missing
[11:44:55 CET] <czarek> but most of the headers are present
[11:45:37 CET] <czarek> i'll see about the presence of the structs within the headers and missing header
[11:45:45 CET] <czarek> thank you sfan5
[15:58:15 CET] <SortaCore> does anyone have the list of metadata supported by mp4?
[16:37:00 CET] Last message repeated 1 time(s).
[16:52:30 CET] <relaxed> https://news.ycombinator.com/item?id=16192813
[17:33:50 CET] <pepijndevos> How can I extract a frame for a list of timestamps? Basically I want to export a picture for every subtitle line.
[17:34:39 CET] <pepijndevos> I extraced the subtitles to text format and grepped the timestamps.
[17:34:57 CET] <pepijndevos> I got this far: ffmpeg -y -i input.mkv -vf subtitles=input.mkv -ss 00:02:01 -frames:v 1 out1.jpg
[17:50:35 CET] <pepijndevos> My problem is if I do a normal loop, it'll take ages, and if I do -ss as an input, the timestamps are wrong for the subtitles
[17:55:40 CET] <c_14> -copyts with -ss as input should work
[17:55:50 CET] <c_14> otherwise an insane select filter might work
[17:55:57 CET] <c_14> or you'd have to use the libav* libraries
[18:28:42 CET] <pepijndevos> c_14, THANK YOU!
[18:29:43 CET] <pepijndevos> Working pretty well https://imgur.com/a/P11QF
[18:53:13 CET] <Fyr> guys, I set -metadata:s:0:31 title=Turkish and FFMPEG sets "Turkish" title to a video (0:0).
[18:53:18 CET] <Fyr> why does it happen?
[18:53:44 CET] <Fyr> I would have shown the complete muxing log, but it's really long.
[18:54:01 CET] <Fyr> 26 subtitles and 5 audio tracks.
[18:54:47 CET] <Fyr> FFMPEG somehow converts 0:31 to 0:0.
[18:56:49 CET] <relaxed> Fyr: which audio track are you targeting?
[18:57:03 CET] <Fyr> it's a subtitle track.
[18:57:27 CET] <relaxed> which one?
[18:57:40 CET] <Fyr> ffprobe says it's 0:31 track.
[18:57:58 CET] <Fyr> when I set metadata to 0:31, it sets it to the video track.
[18:57:59 CET] <c_14> Fyr: just s:31
[18:58:05 CET] <c_14> because it matches to output track and not input
[18:58:24 CET] <c_14> and there's never more than one output file to match
[18:58:27 CET] <Fyr> c_14, could you write here the -metadata option?
[18:58:36 CET] <JEEB> -metadata:s:31 I would guess then
[18:58:41 CET] <c_14> yeah
[18:58:41 CET] <Fyr> thanks!
[18:58:45 CET] <Fyr> now I got it.
[19:07:57 CET] <Fyr> what option is right: "-disposition:16 hearing_impaired" or "-disposition:s:16 hearing_impaired"?
[19:08:33 CET] <JEEB> I would guess the first applies to the 16th track in general
[19:08:46 CET] <JEEB> (well, 17th I guess since zero is first)
[19:09:01 CET] <JEEB> and the second limits it to subtitle tracks?
[19:09:06 CET] <c_14> yeah
[19:09:16 CET] <Fyr> thanks
[20:00:00 CET] <SilenceDogood> How do audio filters work when you have multiple input streams? Can I apply them to some input streams but not others?
[20:00:15 CET] <SilenceDogood> Also how do I select a default audio track when there are multiple audio tracks in an mkv?
[20:01:16 CET] <JEEB> by default ffmpeg.c has some logic related to streams that it selects (and it by default selects the """best""" or so stream
[20:01:38 CET] <JEEB> but if you want to control the selection fully there's the mapping commands for that
[20:01:55 CET] <JEEB> and with -filter_complex you can create the full filter chain yourself explicitly marking the inputs and outputs
[20:02:03 CET] <DHE> and there's -filter_complex which allows you to select which streams to filter or even combine streams with filters that accept multiple inputs
[20:02:36 CET] <SilenceDogood> can I get it to auto-copy all subtitle streams from all available input files or do I need to specify each individual subtitle stream?
[20:03:07 CET] <JEEB> -map 0:s selects all subtitle streams from the first (0th) input file
[20:03:30 CET] <JEEB> (and as soon as you put a -map command in, all automagic selection gets disabled)
[20:03:35 CET] <SilenceDogood> oh great
[20:05:25 CET] <SilenceDogood> So if I say, "-map 0:v -map 1:0 map 0:a map 0:s" that should get video from 0, then add the first stream from 1, then add everything else from 0, right?
[20:06:13 CET] <JEEB> with a bit more -s there, yes
[20:06:25 CET] <SilenceDogood> JEEB what do you mean?
[20:06:30 CET] <SilenceDogood> ohhh
[20:06:32 CET] <SilenceDogood> i'm missing a dash
[20:06:48 CET] <JEEB> "pick video streams from input 0, pick all streams from input 1, pick all audio from input 0, pick all subtitles from input 0"
[20:06:48 CET] <SilenceDogood> -map 0:v -map 1:0 -map 0:a -map 0:s
[20:06:51 CET] <JEEB> is what that does
[20:07:07 CET] <SilenceDogood> wait, why would it pick all streams from input 1
[20:07:12 CET] <JEEB> yes, I mistook that one
[20:07:13 CET] <JEEB> sorry
[20:07:14 CET] <JEEB> :P
[20:07:17 CET] <SilenceDogood> OK
[20:07:22 CET] <SilenceDogood> Now here's the complicated part
[20:07:32 CET] <SilenceDogood> I have a filter that I only want to apply to the stream from input 1
[20:07:57 CET] <SilenceDogood> All other streams should be exact copy, no changes.
[20:08:04 CET] <DHE> -filter_complex "[1:id] filter=options [filterout]"   -map [filterout] -map [0:v] ...
[20:08:08 CET] <JEEB> in that case you would be using filter_complex and then mapping the named output
[20:08:13 CET] <JEEB> yup
[20:08:37 CET] <DHE> oops, no [] on the map for 0:v
[20:08:39 CET] <JEEB> yea
[20:08:41 CET] <DHE> but you get the idea
[20:08:49 CET] <SilenceDogood> uhhhhh not quite, sorry
[20:08:51 CET] <JEEB> ffmpeg.c uses "[thing]" for filter inputs/outputs
[20:08:58 CET] <JEEB> and map can use those
[20:09:10 CET] <SilenceDogood> maybe I should do this in an intermediate step
[20:09:29 CET] <furq> you can just do -af "[0:a]astats"
[20:09:37 CET] <furq> and not have to map the output
[20:09:39 CET] <manuelg> Hi all, got a dumb question
[20:09:59 CET] <JEEB> SilenceDogood: -filter_complex can utilize any tracks from any input, in this case it takes "[1:0]filter[filter_output]" and then you can -map "[filter_output]"
[20:10:20 CET] <JEEB> and yes, there's the implicit filter output which I've never personally liked - but it is there
[20:11:08 CET] <manuelg> i'm trying to stream an image file from local disk, to an ffmpeg server at 1fps, but every time I run it it runs at 1000+ fps. I've tried both -r 1 and -framerate 1 before and after the input option, but to no avail. can anyone help?
[20:11:28 CET] <sfan5> try -re
[20:11:37 CET] <JEEB> if your input is not streaming then you have to utilize the hack in ffmpeg.c which is -re before -i
[20:11:50 CET] <JEEB> do note that it is a hack and with non-simple inputs it will lead to disturbing effects
[20:12:03 CET] <JEEB> such as if your input's timestamps go 8 hours into the future the thing /will/ stall for 8 hours
[20:12:37 CET] <manuelg> Amazing, worked first time, thanks!
[20:12:49 CET] <manuelg> All it is is an image that's refreshed by wget so hopefully won't run into any issues like that
[20:16:13 CET] <SilenceDogood> JEEB, hmmmmmm actually it turns out I'm needing to do more than that
[20:16:36 CET] <JEEB> well you might want to note what you actually want to do first :)
[20:17:01 CET] <SilenceDogood> JEEB, I need to take input 1, add 5.666 seconds of silence and encode it to aac
[20:17:29 CET] <SilenceDogood> make it stream 1 (the first and default audio stream) and copy all other streams from input 0
[20:18:06 CET] <SilenceDogood> the silence goes at the beginning, which I was thinking of doing with -af "adelay=5666|5666|5666|5666|5666|5666"
[20:18:28 CET] <SilenceDogood> But I want to make sure ffmpeg does not attempt to re-encode anything else. Everything from stream 0 must be direct copied with no changes
[20:18:43 CET] <JEEB> well filter_complex lets you specify which input gets filtered and all
[20:18:56 CET] <JEEB> (and how the output is called)
[20:18:58 CET] <SilenceDogood> JEEB but does it let you specify encoding options
[20:19:02 CET] <JEEB> yes?
[20:19:10 CET] <JEEB> filtering is what happens before encoding anyways
[20:19:15 CET] <JEEB> you map the output of the filter chain
[20:19:24 CET] <JEEB> (as opposed to the input stream)
[20:19:36 CET] <SilenceDogood> oh, so I'd say -c:'[out]' aac then ?
[20:20:10 CET] <JEEB> no, you -map it first with the "[name_of_output]" and then that becomes whatever Nth stream to encode
[20:20:40 CET] <JEEB> so if it's the first audio mapping you added
[20:20:59 CET] <JEEB> -map "[afilter_out]" -c:a:0 aac -b:a:0 192k
[20:21:11 CET] <furq> -c:a:0 is the first output audio stream, not input
[20:21:25 CET] <JEEB> where you defined "[afilter_out]" in the filter_complex chain as the output
[20:21:35 CET] <SilenceDogood> JEEB, OK ... I'm going to try to make the right command for this, but I thought I'd also let you know what I'm actually working on just cause you might be interested
[20:21:36 CET] <furq> so if you did -map 0:a:1 -map 0:a:0 then they'll be swapped round in the output
[20:21:44 CET] <SilenceDogood> I'm trying to make Dark Side of the Rainbow in 3D
[20:22:13 CET] <SilenceDogood> using the Wizard of Oz 3D blu ray and the Pink Floyd Dark Side of the Moon 2011 surround sound mix
[20:26:26 CET] <SilenceDogood> JEEB does this look reasonable? ffmpeg -i oz.mkv -f concat -i floyd-loop.txt -filter_complex '[1:a]adelay=5666|5666|5666|5666|5666|5666[floyd]' -map 0:v -map '[floyd]' -map 0:a -map 0:s -c:v copy -c:a:0 aac -c:a:1 copy -c:s copy -c:a aac -metadata:s:v:0 stereo_mode=1 -shortest floyd.mkv
[20:26:50 CET] <JEEB> I have no idea how adelay works but if that's correct then yes
[20:27:15 CET] <SilenceDogood> wait no it's not
[20:27:20 CET] <SilenceDogood> it said -c:a aac
[20:27:45 CET] <SilenceDogood> that's wrong. i only want c:a:0 (the first audio stream) to be aac
[20:28:07 CET] <SilenceDogood> so hopefully like this: ffmpeg -i oz.mkv -f concat -i floyd-loop.txt -filter_complex '[1:a]adelay=5666|5666|5666|5666|5666|5666[floyd]' -map 0:v -map '[floyd]' -map 0:a -map 0:s -c:v copy -c:a:0 aac -c:a:1 copy -c:s copy -metadata:s:v:0 stereo_mode=1 -shortest floyd.mkv
[20:28:20 CET] <JEEB> I just checked that your map name was the same as the output of the filter chain :D
[20:28:44 CET] <furq> if you just want to delay the audio stream then you could potentially just use -itsoffset and avoid reencoding
[20:28:52 CET] <SilenceDogood> JEEB oh well what I want to make sure of is that it's only the Pink Floyd getting re-encoded, while everything else is getting copied
[20:28:56 CET] <JEEB> yea, that depends on a lot of stuff if that works correctly
[20:28:57 CET] <furq> but iirc you said you want this to work on phones so adelay is probably smarter
[20:29:03 CET] <SilenceDogood> furq, no, want to re-encode. The original is FLAC, need AAC.
[20:29:09 CET] <furq> ok
[20:29:11 CET] <furq> what's audio stream 1
[20:29:21 CET] <JEEB> furq: I've found itsoffset to just be nullified often unless you add -copyts
[20:29:21 CET] <SilenceDogood> wizard of oz audio
[20:29:29 CET] <furq> i mean what codec
[20:29:30 CET] <JEEB> and copyts can be "fun" with formats where timestamps can go wee-wee
[20:29:31 CET] <furq> the one that you're copying
[20:29:35 CET] <SilenceDogood> furq aac
[20:29:38 CET] <furq> oh ok
[20:29:41 CET] <furq> nvm then
[20:30:35 CET] <SilenceDogood> Result of running that command: '5666' is not recognized as an internal or external command, operable program or batch file.
[20:30:52 CET] <JEEB> then you haven't quoted the filter chain well enough
[20:31:02 CET] <furq> you might need doublequotes in the windows shell
[20:31:06 CET] <SilenceDogood> The filter works when I said -af "adelay=5666|5666|5666|5666|5666|5666"
[20:31:24 CET] <furq> it's probably breaking on the []s
[20:31:56 CET] <furq> actually nvm it's obviously breaking on the pipe isn't it
[20:32:00 CET] <furq> use double quotes then
[20:32:26 CET] <SilenceDogood> OK, I switched to double quotes on everything
[20:32:35 CET] <SilenceDogood> what does "Starting new cluster due to timestamp" mean
[20:32:37 CET] <SilenceDogood> is it bad
[20:32:52 CET] <furq> probably not
[20:36:52 CET] <SilenceDogood> thanks for your help DHE, JEEB and furq
[20:37:28 CET] <SilenceDogood> furq I think i mentioned to you last week that I'd be working straight from the disc instead of using pirated Wizard of Oz when my blu ray arrives. Well it arrived last night, which is why I'm working on it today. :)
[20:40:56 CET] <SilenceDogood> OK after running that command, the resulting file has some problems:
[20:41:25 CET] <SilenceDogood> 1. The Wizard of Oz audio track is selected by default when I open VLC Media Player
[20:41:40 CET] <SilenceDogood> It should select Pink Floyd by default
[20:42:18 CET] <SilenceDogood> 2. When I switch over to the Pink Floyd track and skip around to different parts of the film, large sections seem to result in no audio playing.
[20:42:44 CET] <SilenceDogood> However, audio does play in a few spots
[20:42:49 CET] <SilenceDogood> What's up with that
[20:42:57 CET] <JEEB> I would recommend testing with mpv as well
[20:43:03 CET] <SilenceDogood> what's mpv
[20:43:09 CET] <JEEB> windows binaries can be found @ https://mpv.srsfckn.biz/
[20:43:20 CET] <SilenceDogood> I'm trying to open the audio stream in Audacity to see if it's got errors
[20:43:43 CET] <JEEB> (you don't need to install, just drag and drop the file on top of mpv.exe)
[20:45:08 CET] <SilenceDogood> is mpv better
[20:45:34 CET] <SilenceDogood> There have always been things I strongly dislike about VLC but I've kept using it because nothing else seems to be able to handle such a wide variety of formats
[20:45:42 CET] <__jack__> yes, mpv is the best player
[20:45:50 CET] <JEEB> in some ways, in other ways it's not yet as good. the main thing is not to limit oneself to a single thing
[20:46:00 CET] <SilenceDogood> although I use foobar2000 for audio because lack of gapless playback is a dealbreaker on any audio player for me
[20:46:18 CET] <JEEB> also at this point if I were to test with vlc I would be using vlc 3
[20:46:23 CET] <JEEB> which is in release candidate state
[20:46:37 CET] <SilenceDogood> oh i'm getting it thanks
[20:46:41 CET] <SilenceDogood> getting both
[20:48:11 CET] <JEEB> did they finally add proper download pages for vlc 3.0 release candidates?
[20:48:23 CET] <JEEB> I had real issues trying to find the official RC builds some time ago
[20:48:32 CET] <JEEB> so I just went for the 3.0 branch nightlies instead
[20:51:01 CET] <SilenceDogood> Same issues occur in MPV as in VLC
[20:52:14 CET] <SilenceDogood> What's the deal here guys
[20:52:23 CET] <JEEB> can't say without seeing specifics :P
[20:53:43 CET] <SilenceDogood> Also the Wizard of Oz audio is listed as English Dolby surround sound, while Pink Floyd is just "Track 1"
[20:55:37 CET] <SilenceDogood> JEEB what specifics can I investigate?
[20:55:58 CET] <SilenceDogood> Wait maybe there's an easier way that'll bypass this whole complex filter thing
[20:56:20 CET] <SilenceDogood> I could stick Pink Floyd in a file by itself
[20:56:41 CET] <SilenceDogood> what's a good container format for surround sound aac ?
[20:56:52 CET] <JEEB> mp4 I'd say
[20:57:02 CET] <JEEB> exact timestamps and supports timestamp offsetting
[20:57:43 CET] <SilenceDogood> JEEB so if I encode to mp4, then copy the stream, I should get same results right?
[20:57:52 CET] <SilenceDogood> no quality loss ?
[20:57:57 CET] <JEEB> yes
[20:58:06 CET] <SilenceDogood> OK I'm gonna give that a shot
[20:58:17 CET] <JEEB> well encoding to AAC will of course be lossy
[20:58:21 CET] <JEEB> because AAC is a lossy format
[20:59:08 CET] <SilenceDogood> JEEB, right, but the step of copying the stream doesn't introduce any additional quality loss right?
[20:59:20 CET] <JEEB> no
[20:59:34 CET] <SilenceDogood> No meaning that's incorrect?
[20:59:51 CET] <JEEB> no, it doesn't introduce any additional quality loss
[20:59:57 CET] <SilenceDogood> OK good
[21:01:30 CET] <SortaCore> copying AAC isn't encoding (converting to) AAC, hence no quality loss
[21:02:19 CET] <SilenceDogood> JEEB, wait shouldn't I use m4a if this file is just audio?
[21:02:33 CET] <JEEB> the extension really doesn't matter
[21:03:59 CET] <lorenz> Are there any developers here that can explain how ffmpeg is migrating from inline asm to linked NASM code without sacrificing performance?
[21:04:24 CET] <lorenz> From all the function calls
[21:04:48 CET] <JEEB> FFmpeg never used inline asm generally
[21:04:58 CET] <JEEB> it was always manual assembly that was assembled into functions
[21:05:17 CET] <JEEB> then you have function pointers that point either to the optimized version, or to a general C version
[21:06:03 CET] <SilenceDogood> Does this look reasonable? ffmpeg -f concat -i floyd-loop.txt -af "adelay=5666|5666|5666|5666|5666|5666" --enable-libfdk-aac -c:a libfdk_aac -b:a 320kbps -ar 48000 -t 1:41:45 floyd.m4a
[21:06:19 CET] <SilenceDogood> that was based on following the wiki
[21:06:23 CET] <JEEB> also I don't think function calls are that expensive to begin with unless you do something really stupid
[21:06:39 CET] <lorenz> so the optimized AVX2 code, for instance, would contain its own looping structure? or are the loops handled in C with a function call
[21:06:57 CET] <JEEB> really tight loops are generally in the SIMD itself
[21:07:11 CET] <JEEB> if it's not a tight loop then it might be in a C for loop
[21:07:21 CET] <Martchus> SilenceDogood: --enable-libfdk-aac looks wrong. It is used at build time to enable support for the coded and not at runtime.
[21:07:29 CET] <SilenceDogood> I said 320 kbps because that's what good mp3s use, but I got no idea if that's normal for surround sound music
[21:07:38 CET] <SilenceDogood> Martchus, oh. the wiki didn't explain that very well
[21:07:43 CET] <JEEB> SilenceDogood: it might be better than 192k since I thought you had stereo :P
[21:08:17 CET] <SilenceDogood> JEEB no, everything in this project is surround sound.
[21:08:28 CET] <JEEB> lorenz: the stuff I wrote for example (never finished, though) I handled the whole video frame in a single function and I looped over the amount of lines in the SIMD code
[21:08:46 CET] <JEEB> just like the C code did more or less
[21:09:21 CET] <SilenceDogood> I got "Unknown encoder 'libfdk_aac'"
[21:09:35 CET] <JEEB> of course since with GPL components enabled it becomes non-distributable
[21:09:45 CET] <JEEB> due to fdk-aac's license not being compatible
[21:10:01 CET] <JEEB> the internal aac encoder is just fine now
[21:10:02 CET] <lorenz> JEEB: it just seems cumbersome to me if you had to write AVX/AVX2/AVX512 optimized versions of the same code each with their own loop structure and peeling
[21:10:09 CET] <Martchus> SilenceDogood: In gerneral, you can assume that --enable-... is some configure flag used at build time. So likely this seemed obvious to the wiki writers. To find out whether your ffmpeg build was build using a certain flag, just invoke ffmpeg without args.
[21:10:47 CET] <SilenceDogood> OK
[21:10:49 CET] <JEEB> lorenz: you can of course macro things, although often since you're using different instructions you would have to write most of that anyways
[21:11:19 CET] <lorenz> right
[21:12:01 CET] <JEEB> also even with inline asm or just intrinsics the general design is the same
[21:12:12 CET] <SilenceDogood> OK so I went with ffmpeg -f concat -i floyd-loop.txt -af "adelay=5666|5666|5666|5666|5666|5666" -c:a aac -b:a 320k -ar 48000 -t 1:41:45 floyd.m4a
[21:12:30 CET] <JEEB> duplicated stuff can be macro'd, and otherwise the actual data processing part ends up being different for each instruction set
[21:13:25 CET] <SilenceDogood> the original FLACs are 24-bit surround sound, straight from the blu ray
[21:13:28 CET] <JEEB> also the compiler often cannot generate optimal/simple code for many things when you use inline stuff
[21:13:38 CET] <lorenz> right
[21:13:46 CET] <SilenceDogood> so when the output says, "Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1(side), fltp (24 bit), 320 kb/s" I am confused
[21:14:18 CET] <JEEB> so when you're comparing inline stuff to straight SIMD code the in-line stuff tends to have an inherent speed loss (although many people recently write intrinsics because it's just that simple and probaly gives you at least half of the speed boost
[21:14:22 CET] <SilenceDogood> I thought the term "24 bit" referred to something to do with quality but I deliberately dropped the quality to something more manageable here, so why does it still say 24-bit ?
[21:14:45 CET] <JEEB> lossy formats don't really have a bit depth
[21:14:54 CET] <JEEB> the (24bit) is probably just some metadata of what it originally was
[21:15:27 CET] <JEEB> with most lossy formats you get a floating point reconstruction of the signal, which you can then convert down to whatever bit depth you want really :P
[21:15:36 CET] <SilenceDogood> JEEB how do I change metadata like that? I think the metadata is why VLC was selecting the Wizard of Oz audio instead of the Pink Floyd audio by default.
[21:22:15 CET] <SilenceDogood> would it be normal for the surround sound mix of a concert that's 1 hour and 41 minutes long to be 233 MB ?
[21:22:27 CET] <SilenceDogood> That seems low to me.
[21:23:56 CET] <SilenceDogood> I would've expected about twice that
[21:25:08 CET] <sfan5> you used 320k bitrate, which is exactly 236 MB at 1h41m
[21:28:25 CET] <SilenceDogood> Oh I see. I'm switching to DTS I think, just cause that's what the Wizard of Oz uses
[21:28:58 CET] <JEEB> DTS is quite a crappy format
[21:29:19 CET] <JEEB> so unless you need it specifically I would just either keep it lossless or use AAC for lossy use cases
[21:31:05 CET] <SilenceDogood> JEEB well using AAC is causing the audio to go silent half the time throughout the movie.
[21:32:10 CET] <JEEB> try re-encoding without any parameters first then :P
[21:32:28 CET] <SilenceDogood> JEEB OK
[21:32:34 CET] <JEEB> and if it still borks then just report a bug with a sample if possible
[21:32:42 CET] <JEEB> (as much of the input as required for it to happen)
[21:33:27 CET] <JEEB> the AAC encoder did get fuzz testing so in theory I'd be surprised if it was the encoder
[21:34:06 CET] <furq> is 5.1 well tested
[21:34:47 CET] <JEEB> I don't have the details on how many different setups got tested but I wouldn't be surprised if it was something else
[21:35:15 CET] <JEEB> which is why I'd like a poke with a simple ffmpeg -i input.flac -c:a aac -b:a 320k out.mp4 kind of thing
[21:35:29 CET] <SilenceDogood> I'm looking at https://www.ffmpeg.org/ffmpeg-all.html#Main-options for how to add metadata
[21:35:40 CET] <SilenceDogood> it explains how to set one language, but not how to add multiple key/value pairs
[21:35:48 CET] <JEEB> you can add metadata after you get things working :P
[21:35:51 CET] <SilenceDogood> does that need multiple -metadata ?
[21:36:07 CET] <SilenceDogood> JEEB well one of the problems was the default audio stream being wrong
[21:36:28 CET] <JEEB> yes but if your audio is getting borked I think that gets priority :P
[21:36:45 CET] <SilenceDogood> I'm trying to put the audio stream in it's own file, and that file should also have the audio metadata
[21:37:16 CET] <furq> maybe it's breaking because of 24-bit input
[21:37:45 CET] <SilenceDogood> quite possibly
[21:37:49 CET] <SilenceDogood> how to fix?
[21:37:53 CET] <JEEB> quite unlikely since it actually will get converted to float anyways, and the whole thing isn't without sound
[21:38:09 CET] <JEEB> so please let's just start simple and just goddamn take just that audio stream and just re-encode it without any filtering
[21:38:17 CET] <JEEB> then check that result
[21:38:23 CET] <SilenceDogood> all the audio appears to be there when I open it in audacity
[21:38:50 CET] <SilenceDogood> I'm doing this here: ffmpeg -f concat -i floyd-loop.txt -af "adelay=5666|5666|5666|5666|5666|5666" -c:a aac -metadata:s:a:0 language=eng -metadata:s:a:0 description="Pink Floyd" -t 1:41:45 floyd.m4a
[21:39:00 CET] <furq> how come it says fltp (24 bit) and not just fltp
[21:39:03 CET] <JEEB> furq: have fun with this case then, I'm off to have something more fun :P
[21:39:07 CET] <furq> i assume there's some kind of distinction there
[21:39:16 CET] <SilenceDogood> no idea
[21:39:18 CET] <JEEB> furq: it probably shows the coded_bits value if it's passed through
[21:39:33 CET] <JEEB> since 24bit is passed as 32bit and then there's a value which says "only 24 bits are actually utilized"
[21:39:41 CET] <JEEB> completely unrelated to teh encoding
[21:39:55 CET] <furq> oh
[21:39:58 CET] <furq> yeah that looks likely
[21:40:17 CET] <furq> i guess opus is out of the question anyway
[21:40:42 CET] <SilenceDogood> the video needs to play on VR players like Oculus Video and Skybox
[21:41:14 CET] <JEEB> furq: just for reference try to get to re-encode it in as simple way as possible to count everything else out :P
[21:41:26 CET] <JEEB> we haven't even decided ifi t's the goddamn encoder or something else he's doing
[21:41:37 CET] <JEEB> but yea, I'm off since i can be doing more fun stuff with my Saturday
[21:48:08 CET] <SilenceDogood> My guess is that the audio is messing up every time it says "Starting a new cluster due to timestamp"
[21:49:08 CET] <SilenceDogood> like this guy https://lists.ffmpeg.org/pipermail/ffmpeg-user/2017-April/035902.html
[21:50:27 CET] <realies> vlc plays rtsp://192.168.0.42 fine while ffmpeg complains about [rtsp @ 0x7fd5bd800000] method SETUP failed: 503 ServerUnavailable
[21:50:52 CET] <realies> does it matter that i have a few network interfaces?
[22:01:24 CET] <SilenceDogood> I may have figured out a work around
[22:01:37 CET] <SilenceDogood> instead of using filters, just repeat the first 5.666 seconds
[22:08:55 CET] <ddubya> when I use ffmpeg ac3 codec, the audio is timeshifted +256 samples ahead of the original wav file. Is this expected behavior or did I find a bug?
[22:09:45 CET] <atomnuker> yes, its expected behaviour, though its a bug that ought to be fixed
[22:09:54 CET] <JEEB> isn't that just encoder delay?
[22:10:01 CET] <JEEB> which should be marked in the container if available
[22:10:14 CET] <atomnuker> no, ffmpeg.c doesn't respect the delay at the start
[22:10:25 CET] <JEEB> when decoding back to wav? yes
[22:10:27 CET] <atomnuker> which can be arbitrary and more than a frame
[22:10:31 CET] <JEEB> yup
[22:10:33 CET] <atomnuker> yes, when decoding to wav
[22:10:46 CET] <JEEB> because wav doesn't have negative timestamp support or whatever, so ffmpeg.c pads it to zero->
[22:10:50 CET] <JEEB> right?
[22:10:55 CET] <JEEB> at least that's how I remember that stuff
[22:12:40 CET] <ddubya> atomnuker, If I wanted to work around the bug myself (I have a transcoder with the same problem) could I do it by setting the first pts to -256 or should I drop the first 256 samples?
[22:14:10 CET] <atomnuker> no, if you're using the API you're supposed to solve it yourself by ignoring the first N samples the encoder reports
[22:14:28 CET] <atomnuker> dunno how you'd solve it via the cli
[22:15:08 CET] <ddubya> does the codec publish the value of N somewhere? I have similar problem with other codecs is why
[22:15:41 CET] <JEEB> generally no, the negative timestamp from the encoder is generally a hint of something like that but I'm not even sure how many fields you need to check if the negative timestamp is due to encoder delay or not
[22:15:49 CET] <JEEB> or does the timeline just happen to start at negative
[22:16:28 CET] <ddubya> ok
[22:16:53 CET] <ddubya> well the m4a codec has a delay and doesn't have the timeshift problem. So I couldn't go by that alone
[22:27:17 CET] <atomnuker> JEEB: it does
[22:30:21 CET] <SilenceDogood> ITS THE SUBTITLES
[22:30:40 CET] <atomnuker> no, its avctx->delay for decoding
[22:30:43 CET] <SilenceDogood> JEEB, furq, copying the subtitles causes the "Starting a new cluster due to timestamp" error.
[22:31:06 CET] <SilenceDogood> sorry atomnuker, not talking about your problem
[22:31:48 CET] <JEEB> SilenceDogood: yea there's been a lot of matroska files with derp'd subtitle timings which might explain it (or there's a bug somewhere)
[22:31:57 CET] <JEEB> which is why I wanted you to try just the audio without any filters first :P
[22:32:29 CET] <JEEB> after checking that it's not the audio it should have been obvious to start looking for other reasons, one of which would have been to start removing streams :P
[22:35:43 CET] <SilenceDogood> JEEB, OK .... so basically FFMPEG's bugged so I can't use the subtitles?
[22:36:08 CET] <JEEB> not necessarily FFmpeg's fault, I just listed it as one of the alternatives
[22:36:11 CET] <SilenceDogood> Before I had a -c:s copy in there
[22:36:19 CET] <SilenceDogood> When I got rid of that, I got error: Only SUBTITLE_ASS type supported.6 bitrate=1343.4kbits/s speed=0.0189x Subtitle encoding failed
[22:36:36 CET] <SilenceDogood> I didn't know a subtitle could have an ass
[22:36:41 CET] <SilenceDogood> Shows what I know about anatomy
[22:37:54 CET] <JEEB> there was first a format called SSA (substation alpha), and then it was improved into ASS
[22:38:08 CET] <JEEB> yes, teenage humour was related
[22:39:35 CET] <SilenceDogood> a guy on stack overflow also ran into this: https://stackoverflow.com/questions/19200790/converting-dvd-image-with-subtitles-to-mkv-using-avconv
[22:39:48 CET] <SilenceDogood> It would work for me to have the subtitles come out as separate files
[22:41:05 CET] <SilenceDogood> but it needs to have subtitles, i mean come on
[22:44:10 CET] <SilenceDogood> wait I know. if I can just extract the Wizard of Oz 3D subtitles to a srt or sub file then I can just rename them to associate with my new file
[22:44:24 CET] <SilenceDogood> should work, right?
[22:47:58 CET] <ddubya> atomnuker, are you saying the extra samples at the start come from encoder or decoder?
[22:49:54 CET] <JEEB> they are encoded by the encoder in the bit stream
[22:50:07 CET] <JEEB> priming/whatever samples
[22:50:15 CET] <JEEB> different encoders utilize different amounts of that
[22:50:51 CET] <JEEB> some decoders just hardcode "most encoders probably generate this much of them", other decoders like FFmpeg's give you all of those samples and then you can in the container note the timestamp difference
[22:51:47 CET] <ddubya> oic so best if I adjust the output pts then
[23:00:57 CET] <ddubya> arg that has no effect
[23:02:17 CET] <JEEB> when decoding you have to handle it; an encoder/muxer can only do as much as note the amount of samples in the time line if possible
[23:03:12 CET] <JEEB> ffmpeg.c doesn't do that so when you take your encode it will most likely show the delay somehow, but will just output all samples into a WAV :P
[23:04:30 CET] <ddubya> yeah the samples are already encoded & packetized, i can't disassemble the packet and remove them. But why can't I put in a negative PTS? Then decoder should do the right thing I hope
[23:05:02 CET] <JEEB> various muxers support negative timestamps just fine I think? and if you're encoding with an audio encoder that sets the encoder delay properly it should JustWork?
[23:05:17 CET] <JEEB> (as the timestamps output by the encoder should be already set with the delay in that case)
[23:07:10 CET] <ddubya> doh, I put -512 as the first PTS and it ends up as 0 in the file
[23:07:49 CET] <JEEB> which container is that?
[23:09:51 CET] <ddubya> well there is no cnainter its raw ac3
[23:10:00 CET] <ddubya> hrm
[23:10:01 CET] <JEEB> yea
[23:10:19 CET] <JEEB> most raw audio formats have absolutely no way of pushing that info forwards
[23:10:53 CET] <JEEB> in mp4 you have edit lists which is probably the most used feature to enable this stuff
[23:11:54 CET] <ddubya> so I see, most of these raw codecs can't represet a negative PTS
[23:12:49 CET] <ddubya> have to annotate the file if its possible
[23:14:00 CET] <JEEB> some muxers read the delay from the file name but I don't think FFmpeg does that
[23:27:34 CET] <realies> how can i send rtsp stream to a rtmp server?
[23:28:00 CET] <realies> ffmpeg -i rtsp://192.168.0.42 -f flv output.flv => [rtsp @ 0x7fe174801200] method SETUP failed: 503 ServerUnavailable; rtsp://192.168.0.42: Server returned 5XX Server Error reply
[23:28:06 CET] <realies> playing through vlc works fine
[23:28:08 CET] <realies> not sure what's wrong
[23:30:04 CET] <realies> odd as gstreamer gives me Error (503): Service Unavailable as well
[23:30:18 CET] <manuelg> hi all, is anyone able to help me with a mosaic problem?
[23:30:37 CET] <ddubya> huh, I exported to mkv container and still the +256 offset. First packet got a negative timestamp too
[23:31:09 CET] <JEEB> well negative offset means there's an offset no?
[23:31:47 CET] <ddubya> Well I was hoping it would be negative in the file, but when I imported it wasn't shifted corectly
[23:31:47 CET] <realies> maybe my routes arent right?
[23:31:51 CET] <realies> but how does vlc knows them?
[23:31:58 CET] <ddubya> could be broken importer
[23:33:41 CET] <realies> https://dpaste.de/6iaa/raw
[23:37:03 CET] <realies> no one?
[23:37:07 CET] <manuelg> I'm trying to put 3 mjpeg streams from ffserver into a single stream, then send it back to the server as a different feed, but ffmpeg keeps failing with "broken pipe"
[23:56:10 CET] <manuelg> anyone around?
[23:57:41 CET] <SilenceDogood> yeah i am
[23:57:54 CET] <SilenceDogood> I can't figure out what the hell makes vlc choose the second audio stream to play by default
[23:58:21 CET] <SilenceDogood> oh wait i think i got it
[23:58:34 CET] <SilenceDogood> -disposition:a:1 doesn't set to the second AUDIO stream, but just to the second stream
[23:59:40 CET] <manuelg> able to help with my multi-mjpeg problem? :-)
[00:00:00 CET] --- Sun Jan 21 2018


More information about the Ffmpeg-devel-irc mailing list