BtbN changed the topic of #ffmpeg to: Welcome to the FFmpeg USER support channel | Development channel: #ffmpeg-devel | Bug reports: https://ffmpeg.org/bugreports.html | Wiki: https://trac.ffmpeg.org/ | This channel is publically logged | FFmpeg 7.0 is released
<theprof86> is there a way to fix what it is complaining about? I tried adding fps=1 and other options but I still get the warning
<furq> it's an attached picture, it shouldn't have a timescale
<furq> it's probably some vestige of ffmpeg trying to treat cover art etc as a video stream
<furq> it has nothing to do with the filterchain anyway
<furq> you'll get the same warning if you mux in a png
<theprof86> ok
<theprof86> I'm trying to do the following: take a video and convert it to MP4 HVC1. It should also generate and add a thumbnail and it should do all this in 1 command. It should work on all videos, videos may have up to 10 tracks. Most importantly, I want to map as much metadata as possible.
<theprof86> I have come up with the following command which seems to work:
<theprof86> ffmpeg -nostdin -hide_banner  \
<theprof86>     -y -i "$SCRIPT_PARAM_INPUT" \
<theprof86>     -filter_complex "[0:v:0]thumbnail,scale=320:-2,trim=start_frame=0:end_frame=1[thumb]" \
<theprof86>     -map "[thumb]" \
<theprof86>     -map 0:v \
<theprof86>     -map -0:v:disp:attached_pic \
<theprof86>     -map 0:a \
<theprof86>     -map 0:s? \
<theprof86>     -c:v:0 mjpeg \
<theprof86>     -c:v:1 libx265 -x265-params log-level=$SCRIPT_PARAM_X265_LOG_LEVEL \
<theprof86>     -c:v:2 copy -c:v:3 copy -c:v:4 copy -c:v:5 copy -c:v:6 copy -c:v:7 copy -c:v:8 copy -c:v:9 copy -c:v:10 copy \
<theprof86>     -c:v:11 copy -c:v:12 copy -c:v:13 copy -c:v:14 copy -c:v:15 copy -c:v:16 copy -c:v:17 copy \
<theprof86>     -c:v:18 copy -c:v:19 copy -c:v:20 copy \
<theprof86>     -c:a copy -c:s copy \
<theprof86>     -disposition:v:0 attached_pic \
<theprof86>     -map_metadata 0 \
<furq> you can just do -c:v copy -c:v:0 mjpeg -c:v:1 libx265
<furq> as long as -c:v copy is first
<furq> also use a pastebin for pastes that long
<theprof86> yep then it gives me a warning that it will take the last option for c:v:1....in my script, I'm expecting no warnings so thats why I did it that way
<theprof86> oh ok will use pastebin going forwards
<theprof86> the timescale not set warning disappears if I set use_metadata_tags but then my custom thumbnail is not copied over. Rather than fix that, I use exiftool to copy over the metadata after the conversion
Everything has quit [Ping timeout: 246 seconds]
lucasta has quit [Quit: Leaving]
tokyovigilante has quit [Remote host closed the connection]
rvalue- has joined #ffmpeg
rvalue has quit [Ping timeout: 252 seconds]
rvalue- is now known as rvalue
<znf> yeah, I can't trick it to do that at all, to loop a single segment multiple times...
<znf> Hmm. Wait.
<znf> I can actually get it working.
<znf> but not with -hls_segment_type fmp4
<znf> with ts it works
stolen has quit [Quit: Connection closed for inactivity]
theprof86 has quit [Ping timeout: 256 seconds]
wyatt8740 has joined #ffmpeg
FlorianBad has quit [Remote host closed the connection]
FlorianBad has joined #ffmpeg
mven97 has quit [Quit: Goodbye.]
Suchiman has quit [Quit: Connection closed for inactivity]
ZLima12 has quit []
ZLima12 has joined #ffmpeg
mven97 has joined #ffmpeg
luva8889 has quit [Ping timeout: 245 seconds]
luva8889 has joined #ffmpeg
vincejv has quit [Remote host closed the connection]
wyatt8740 has quit [Ping timeout: 265 seconds]
rvalue- has joined #ffmpeg
rvalue has quit [Ping timeout: 252 seconds]
rvalue- is now known as rvalue
Marth64 has joined #ffmpeg
wyatt8740 has joined #ffmpeg
xx has quit [Ping timeout: 260 seconds]
wyatt8740 has quit [Ping timeout: 252 seconds]
turlando has quit []
turlando has joined #ffmpeg
darkapex has joined #ffmpeg
wyatt8740 has joined #ffmpeg
Vonter has joined #ffmpeg
jab416171 has quit [Ping timeout: 276 seconds]
jab416171 has joined #ffmpeg
DetourNetworkUK has quit [Remote host closed the connection]
DetourNetworkUK has joined #ffmpeg
moxie has quit [Quit: WeeChat 3.8]
moxie has joined #ffmpeg
sihloo has quit [Quit: ZNC 1.9.1 - https://znc.in]
StephenLynx has quit [Quit: Leaving]
sihloo has joined #ffmpeg
Dagger has quit [Ping timeout: 260 seconds]
relue has joined #ffmpeg
Dagger has joined #ffmpeg
vincejv has joined #ffmpeg
sm1999 has joined #ffmpeg
System_Error has joined #ffmpeg
tux97 has quit [Quit: Leaving]
relue has quit [Ping timeout: 272 seconds]
relue has joined #ffmpeg
putacho has joined #ffmpeg
microchip_ has quit [Ping timeout: 244 seconds]
tokyovigilante has joined #ffmpeg
tokyovigilante has quit [Remote host closed the connection]
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg
tokyovigilante has joined #ffmpeg
<noobaroo> if there are 2 flacs from different sources of the same song, and one is -1db less than the other (globally) according to audacious the peaks are -1db less all across, which one is more likely to be more raw?
System_Error has quit [Ping timeout: 260 seconds]
Suchiman has joined #ffmpeg
lockywolf has quit [Read error: Connection reset by peer]
System_Error has joined #ffmpeg
<aaabbb> noobaroo: i think with the checksum of the pcm you can verify if it comes from a rip of an official cd
<aaabbb> using cd databases like gnudb
<furq> cddb just works off track length
<furq> you want accuraterip or ctdb
<furq> but that's only useful for cd
<aaabbb> i was mixing up cddb with accuraterip, oops
<aaabbb> but yeah it only matters if it's cd. it's possible that both are official sources but mastered differently
<furq> that would be my guess as well
<furq> or one of them has replaygain tags
<aaabbb> also by checking the spectrum you can sometimes determine if it's a lossy converted to flac
<furq> you can but i've never actually seen that happen
<furq> i think all those guys moved on to faking eac log checksums
<aaabbb> i've seen it before by people trying to get good ratios on torrent sites
<furq> yeah i've heard about it but i've never actually seen it
DetourNetworkUK has quit [Ping timeout: 272 seconds]
<furq> and statistically i definitely should have by now
<furq> i've sought enough souls in my time
Blacker47 has joined #ffmpeg
xx has joined #ffmpeg
Sketch has quit [Remote host closed the connection]
Sketch has joined #ffmpeg
relue has quit [Ping timeout: 252 seconds]
relue has joined #ffmpeg
DetourNetworkUK has joined #ffmpeg
DetourNetworkUK has quit [Remote host closed the connection]
DetourNetworkUK has joined #ffmpeg
putacho has quit [Quit: There is no spoon!]
microchip_ has joined #ffmpeg
microchip_ has quit [Quit: There is no spoon!]
microchip_ has joined #ffmpeg
lavaball has joined #ffmpeg
Tano has quit [Ping timeout: 260 seconds]
Tano has joined #ffmpeg
microchip_ has quit [Quit: There is no spoon!]
microchip_ has joined #ffmpeg
Tano has quit [Ping timeout: 244 seconds]
sm1999 has quit [Quit: WeeChat 4.5.0-dev]
Mister_Magister has quit [Quit: bye]
<noobaroo> Whats the website that has the pcm checksums ? I looked it up and it seems like accuraterip is some proprietary Windows software
<noobaroo> aaabbb the spectrums aren't identical but they are just as full as each other, the main difference is one is -1db less all across, other than that they are not perfectly identical to each other though
Mister_Magister has joined #ffmpeg
<noobaroo> The ffprobe on one says Warner Music Sweden and the other says Sony
<noobaroo> So the small loudness difference is not any sort of indicator? I'm not looking for an exact proof but itd be cool to know which is more likely, or is it completely and utterly random ?
<noobaroo> I thought maybe during some mastering stage or some vendor conversion or something, there is some sort of process that is known to cause the 1db increase or decrease. IDK. Dont know how the professional production stuff works
<furq> that's not a thing i've ever heard of
<noobaroo> Or maybe you guys knew just from experience that bandcamp flacs are normally this compared to the rest, or apple flacs are normally this, etc
<noobaroo> Ah okay. Thanks
<furq> and if they're from web sources then ar/ctdb isn't going to help
<noobaroo> I couldnt find that site anyway, is there actually a free website database lookup or is it just some proprietary program?
<furq> there is some way of looking them up but it uses a custom hash
<furq> presumably there's some native linux way of doing it but i wouldn't know what
<furq> usually you interact with those through eac or cuetools
<furq> the c# cuetools not the one that's packaged on most linux distros
<furq> i think it has to be run in wine on linux
<noobaroo> It would be cool to have a database of pcm hashes to know exactly where stuff came from. But if its purely like a yes/no response of authenticity, well its sad if you have a 30MB file and cant tell if its actually more than an mp3. I mean "you" as in people in general. I think it should be way easier than what it currently is. I guess one of the main demand would be piracy purposes so there is no supply for this sort of inspection software
<noobaroo> because there is no genuine retail demand
<aaabbb> it's pretty easy to tell if it's just pcm from a decoded mp3
<noobaroo> Audacity is cool and everything but its kind of 2Dimensional and stupid and expects the human to be very smart and do a lot of work
<aaabbb> since it usually has a pretty aggressive lowpass
<noobaroo> Yeah....
<furq> it would be impossible to police in general
<furq> that's why it only exists for cd
<furq> you can fairly reasonably enforce it if you can only submit hashes from correctly configured eac
<noobaroo> which is exactly what i mean, very 2D. The lowpass is pretty much the main way to tell for anyone and the only way to tell for me. If sound is really that much more microscopically perfect then it should be blatantly obvious in ANY bandwidth range just by zooming in
<furq> you can pick mp3 transcodes very easily because there are visible dct artifacts in the spectral
<furq> but then a lot of music nowadays uses lossy samples which also have those artifacts
<noobaroo> What does a dct artifact look like? or can i find pics online easily ?
<furq> it looks like a square
<furq> if you zoom in far enough it's really obvious
<aaabbb> think of it like the audio version of blocking in video. it's a similar look
<noobaroo> In audacity normal view that shows by default right when you open the program?
<aaabbb> audacity shows the waveform by default, i think it can show spectrum too but idk how well it works
<furq> extreme example but it's pretty obvious there
<furq> maybe a better example because that shows you can't rely on lowpass
<furq> that one still has a visible shelf but v0 won't always
<noobaroo> Thats audacity spectrogram ?
<noobaroo> This is the view I've been using, here's the two files: https://0x0.st/Xd2D.webp https://0x0.st/Xd2k.webp
<noobaroo> Its kind of annoying to use Audacity because its like if im trying to visually compair a transcode with original but am not able to cycle windows of the same frame. I dont even try to use the main views anymore because the default audacity view is very far zoomed out and i always find myself clicking and dragging and zooming in and then its impossible to look at the same area on the other file
<noobaroo> Does dither make the spectrogram look noticeably fuller? (more lossless looking, not so empty) Or is it so small that it doesnt show up
Guest0 has joined #ffmpeg
<noobaroo> One of them has this weird purple band at the top and the other does not, https://0x0.st/Xd2R.webp What does this band mean? Its the Warner Music Sweden one. I doubt it actually came like that so I guess this one is not intact
ta71 has joined #ffmpeg
<furq> that could maybe be mqa
<furq> in which case that one is junk
<furq> i would definitely prefer the one that doesn't have a suspicious high frequency noise band
realies4 has joined #ffmpeg
realies has quit [Ping timeout: 248 seconds]
realies4 is now known as realies
<Guest0> trying to match this: echo "Stream #0:0 -> #0:1 (h264 (native) -> hevc (libx265))" | grep -qE '^Stream #0:0 -> #0:1 \(.* -> hevc \(libx265\)\)$' anyone see why it would not match
<furq> that does match
<JEEB> it will be in stderr for ffmpeg.c
<JEEB> but it sounds like you rather want events or something through an API
xx has quit [Ping timeout: 260 seconds]
xx has joined #ffmpeg
lavaball has quit [Remote host closed the connection]
Tano has joined #ffmpeg
wobbol has quit [Ping timeout: 248 seconds]
<Guest0> yes it does match, I just had to remove some spaces from the log
manwithluck has quit [Remote host closed the connection]
manwithluck has joined #ffmpeg
nd has quit [Ping timeout: 260 seconds]
<aaabbb> speaking of mqa, noobaroo if you want a laugh then look up some criticisms of mqa. it's funny how bad it is and how hard it was pushed for
nd has joined #ffmpeg
<noobaroo> aaabbb: my headset doesnt play mid-high frequencies (7khz+) unless I crank up the sound (which is a little wheel on the cord) very high. I usually try to keep audio 100% in linux and then just spin the physical wheel but if I start keeping pipewire sinc at 50% will it decrease quality like >100% volume will ?
alexherbo2 has joined #ffmpeg
nasso has joined #ffmpeg
nasso has left #ffmpeg [#ffmpeg]
StephenLynx has joined #ffmpeg
DauntlessOne has quit [Remote host closed the connection]
DauntlessOne4 has joined #ffmpeg
Traneptora has quit [Ping timeout: 264 seconds]
psykose has quit [Remote host closed the connection]
psykose has joined #ffmpeg
yans has quit [Read error: Connection reset by peer]
HarshK23 has quit [Quit: Connection closed for inactivity]
lucasta has joined #ffmpeg
lavaball has joined #ffmpeg
<phantomics> Quick question: what params do I need to add so that FFMPEG actually reencodes a video? I am doing this: ffmpeg -i Test.mp4 -f rawvideo -pixel_format rgb24 - >> /tmp/vpipe-in
<phantomics> I grab a frame from the /tmp/vpipe-in and write it to a .png file with another program, but it's actually getting the pixels in YUV420 format, as contained in the mp4 video
<phantomics> I tried ffmpeg -ss 0:04 -i Test.mp4 -c:v rawvideo -pix_fmt rgb24 - >> /tmp/vpipe-in but that returned the following error: Unable to find a suitable output format for 'pipe:'
<phantomics> My goal is for it to send actual RGB bytes to the pipe where I can read them using another program
Guest0 has quit [Quit: Client closed]
yans has joined #ffmpeg
<phantomics> Figured it out, nvm
Guest0 has joined #ffmpeg
alexherbo2 has quit [Remote host closed the connection]
averne has quit [Quit: quit]
averne has joined #ffmpeg
wobbol has joined #ffmpeg
Guest0 has quit [Quit: Client closed]
Vonter has quit [Quit: WeeChat 4.4.3]
rv1sr has joined #ffmpeg
talismanick has quit [Ping timeout: 248 seconds]
Traneptora has joined #ffmpeg
rv1sr has quit []
Traneptora has quit [Client Quit]
Traneptora has joined #ffmpeg
Dagger has quit [Ping timeout: 244 seconds]
Dagger has joined #ffmpeg
vampirefrog has joined #ffmpeg
Traneptora has quit [Quit: Quit]
lucasta has quit [Quit: Leaving]
rv1sr has joined #ffmpeg
hightower3 has joined #ffmpeg
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg
<xx> phantomics: what was the issue?
<xx> well, solution
HarshK23 has joined #ffmpeg
<phantomics> The solution: ffmpeg -i Input.mp4 -vcodec rawvideo -pix_fmt rgb24 -f rawvideo -pix_fmt rgb24 out.rgb
<phantomics> Now I'm working on figuring out how to send from a named pipe to ffmpeg
<BtbN> -v/a/scodec are deprecated, use -c:v and friends
<phantomics> Doing mkfifo /tmp/vpipe-out && /tmp/vpipe-out >> ffmpeg -vcodec vp8 /tmp/out1.webm, I get /tmp/vpipe-out: Permission denied
<phantomics> I'll try that BtbN
<BtbN> Yeah, cause you're trying to execute the pipe
<phantomics> cat pipe >> ?
<BtbN> Why not just keep using -i as usual?
<DPA> ffmpeg -i - </tmp/vpipe-out ...
<BtbN> Why though?
<phantomics> Ok they can be used as the input
<phantomics> Why am I using pipes this way?
<BtbN> Why pipe it into stdin, and then tell -i to use stdin
<BtbN> Seems a bit redundant
<phantomics> I appear to have it working with -i, so I'll proceed that way
<DPA> Why use named pipes?
<BtbN> Why not?
<DPA> just a | b | c
<DPA> Nothing to clean up
<BtbN> That assumes everything is executed right then and there in the shell
<phantomics> I am using ffmpeg to take a video, convert it to rgb24 format and stream the frames to a named pipe. I then read the input with another program that transforms the frames, then write them to the output pipe, where they are picked up by the other ffmpeg and written into an output video
<phantomics> The other program is used to call ffmpeg, but it is not run from the shell
<DPA> Pipes aren't limited to shells. Just a matter of pipe() dup2() etc. calls.
<DPA> If you ever end up with half a frame left over in a named pipe, it'll all be displaced.
<phantomics> My function creates the pipes when it starts and deletes them at the end
<phantomics> I'm not writing in C, there may be an FFI lib I can use but I'd rather use simpler features of the OS
<phantomics> Does anyone know the syntax I should use when reading rgb24 data from the pipe and reencoding it to another codec for the output video? For example, ffmpeg -i - </tmp/vpipe-out -f rawvideo -pix_fmt rgb24 -video_size 480x852 -vcodec vp8 /tmp/out1.webm
<phantomics> This is meant to read rgb24 bytes from the pipe and encode the frames to a VP8 video
zmt01 has joined #ffmpeg
<BtbN> you need to tell it the exact format and dimensions of what's in the pipe
<BtbN> raw bytes have no metadata, it can't guess what those random bytes are
zmt00 has quit [Ping timeout: 276 seconds]
<phantomics> In the command above I have the size as 480x852 and the -f format as rawvideo/rgb24, is that not enough information for it? Wrong parameters?
<BtbN> That's the output parameters
<BtbN> you're specifying zero parameters for the input, so it'll just guess. And fail
<phantomics> Input params go before -i?
<BtbN> yes, every option affects the next input or output following it
<phantomics> Thanks got it
mw1144 has joined #ffmpeg
mw1144 is now known as green44
Blacker47 has quit [Quit: Life is short. Get a V.90 modem fast!]
DetourNetworkUK has quit [Ping timeout: 264 seconds]
Guest0 has joined #ffmpeg
<Guest0> Hi
<Guest0> I have some WMV, MOV, and AVI files that I like to encode to libx265 MP4. What do I need to rencode the audio to? I want it future compatible and playable on modern devices (phones, pcs, smart tvs)
<another|> aac ?
xx has quit [Ping timeout: 260 seconds]
<Guest0> if it's already aac like in the case of most MOV files, is it possible to skip the encoding for the audio? Like only encode if it's not aac
<vlt> Guest0: Yes, if it’s already aac you can use `-codec:a copy`.
<Guest0> yep I know that but is it possible to conditionally encode it? I'm encoding a bunch of files, I only want to encode the audio part if it's not aac
hightower4 has joined #ffmpeg
<BtbN> That's not a thing
<BtbN> could script it externally
<Guest0> damn I wish it had a built-in way. is this the most proper way to detect the main audio codec through scripting: ffprobe -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$1"
DetourNetworkUK has joined #ffmpeg
hightower4 has quit [Remote host closed the connection]
hightower3 has quit [Ping timeout: 244 seconds]
hightower4 has joined #ffmpeg
hightower3 has joined #ffmpeg
dallemon has quit [Quit: Ping timeout (120 seconds)]
dallemon has joined #ffmpeg
ewomer has quit [Read error: Connection reset by peer]
hightower4 has quit [Ping timeout: 252 seconds]
<Guest0> any idea of what settings I need to rencode a WMA audio file to AAC
coldfeet has joined #ffmpeg
<another|> ffmpeg -i foo.wma -c:a aac bar.m4a
<BtbN> Why do you want to re-encode it though? It ain't gonna get better, and also not all that much smaller that it's worth the quality loss.
<Guest0> i cant mux it into a MP4 container
<BtbN> Yeah, but do you really need mp4? If not, I'd just leave it alone.
<Guest0> my end goal is to make a web portal where family can stream videos, for that I want to make all the videos the same format. It makes it easier to scan and process.
<Guest0> i wish I could keep it the same and all the formats are support by modern browsers and devices....but licensing sucks
Guest0 has quit [Quit: Client closed]
Guest0 has joined #ffmpeg
ewomer has joined #ffmpeg
Kruppt has joined #ffmpeg
vanfanel64 has quit [Quit: Going offline, see ya! (www.adiirc.com)]
Rena has quit [Quit: $WITTY_QUIT_MESSAGE]
Rena has joined #ffmpeg
Everything has joined #ffmpeg
rv1sr has quit []
System_Error has quit [Ping timeout: 260 seconds]
jtgd has quit [Quit: WeeChat 4.4.3]
jtgd has joined #ffmpeg
relue has quit [Read error: Connection reset by peer]
coldfeet has quit [Remote host closed the connection]
iive has joined #ffmpeg
SuicideShow has quit [Ping timeout: 260 seconds]
SuicideShow has joined #ffmpeg
<aaabbb> noobaroo: the reason >100% volume in software hurts quality is because it can cause clipping. decreasing volume in software does not have that issue
Guest0 has quit [Quit: Client closed]
<aaabbb> imagine the waveform in a box like you see in audacity. think of hardware volume control as scaling the whole box, waveform and all, bigger or smaller. think of software volume control as only scaling the waveform within the box but not the box itself
<aaabbb> by visualizing that you see how lowering volume in software is harmless but raising it risks causing the waveform to grow bigger than the boundaries of the box, and any samples that do will get "clipped"
<BtbN> lowering it in software is also far from harmless, specially with integer formats
<aaabbb> BtbN: i suspect pipewire converts it to float
<aaabbb> even cheap motherboard audio usually can handle 24 bit pcm. u16 -> float -> u24 shouldn't cause any noticible problems
<aaabbb> but i just meant that decreasing volume won't cause the clipping that you see when increasing >100%, not that it's a lossless operation
<aaabbb> (correct me if i'm wrong about that)
<BtbN> decreasing the volume with integer formats basically leads to reducing the amount of bits
<BtbN> so if you make it quiet enough, you got nice and crunchy 8 bit audio
<BtbN> libfdk is renown for that, had people in here with that problem before
<BtbN> Since it only take integer inputs
<aaabbb> presumably at that point it would be so quiet that even the noise floor of 8 bit audio would be no problem right?
<aaabbb> unless you're simultaneously increasing hardware volume while decreasing software volume to super high levels
<BtbN> I'm not sure what the exact situation was, but for some reason the audio was reduced to like 5% volume and then boosted up again
<aaabbb> ouch yeah that would hur
<aaabbb> t
<BtbN> It sounded like 8 bit audio :D
<BtbN> And the math actually roughly checked out for 8 bits of precision remaining
<BtbN> fdk aac is 32bit signed
<aaabbb> i was only thinking of noobaroo's specific situation of pipewire for audio that will be immediately sent to a dac, not for audio that will be further processed
<aaabbb> you know i actually use aresample=osf=u8,volume=1/4:fixed,volume=4:fixed in a filter chain to simulate 4-bit audio once because for some reason acrusher=bits=4:aa=0:mix=0 did not give accurate results
rex has quit [Ping timeout: 246 seconds]
<aaabbb> which truncates to 8bit with no dither, cuts volume to 1/4th using integer precision, the increases by 4x using integer precision