Ffmpeg-devel-irc
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
October 2016
- 1 participants
- 62 discussions
[01:00:16 CEST] <cone-140> ffmpeg 03Michael Niedermayer 07master:987690799dd8: avformat/utils: Update codec_id before using it in the parser init
[01:00:16 CEST] <cone-140> ffmpeg 03Michael Niedermayer 07master:21bffa93a6fc: avformat/movenc: Switch mov_write_uuidprof_tag() to avg_frame_rate
[01:00:16 CEST] <cone-140> ffmpeg 03Michael Niedermayer 07master:ed2112fb36d7: avformat/movenc: Check frame rate in mov_write_uuidprof_tag()
[02:41:49 CEST] <StevenLiu> Hi, Michael here?
[02:42:11 CEST] <michaelni> yes
[02:42:39 CEST] <StevenLiu> about deprecate local_port option, i saw you say it's bit longer
[02:43:52 CEST] <StevenLiu> why do you said that? dose that not duplicate to localport, or have some other effects
[02:47:34 CEST] <StevenLiu> or have some other consideration?
[02:48:18 CEST] <michaelni> it makes sense to deprecate one option but i would leave it supported for a while and not drop its support, that just gives pain to users who used it
[02:48:37 CEST] <michaelni> and would have their scripts or apps broken by its removial
[02:51:48 CEST] <StevenLiu> okay, I just saw there have two option with same function, so i think it's duplicate, and remove one of them by the way :-)
[02:57:36 CEST] <michaelni> its fine to mark one as deprecated and remove from documentation, also fine to remove _eventually_ but it should not be removed on the next bump, people should have time to see its deprecation and have time to update threir stuff at least.
[03:00:03 CEST] <StevenLiu> mhmm, i saw there have no local_port option documentation, so i choose to deprecated option
[03:00:37 CEST] <cone-140> ffmpeg 03Michael Niedermayer 07master:1bda0ee53055: avutil/hwcontext_vdpau: Fix warning: "GET_CALLBACK" redefined
[03:02:05 CEST] <StevenLiu> grep -r "local_port" doc/, no document for local_port,
[03:02:51 CEST] <StevenLiu> but grep -r "localport" doc/, have document for localport and be used by udp protocol.
[03:05:00 CEST] <StevenLiu> or add one doc for local_port?
[11:00:17 CEST] <ubitux> any ml moderator?
[11:35:54 CEST] <Compn> ubitux
[11:36:15 CEST] <ubitux> Compn: is there no mail in queue from unregistered users? (ffmpeg-devel)
[11:36:59 CEST] <ubitux> like, from thursday
[11:37:06 CEST] <Compn> a mips mail
[11:37:24 CEST] <Compn> Size: 2234151 bytes
[11:37:24 CEST] <Compn> Reason: Message body is too big: 2231906 bytes with a limit of 950 KB
[11:38:02 CEST] <ubitux> i know someone who sent 3 mails (compose+2patches) on thursday
[11:38:05 CEST] <Compn> everything else looks like spam, nothing from thursday
[11:38:11 CEST] <ubitux> ok that's strange
[11:38:17 CEST] <Compn> lou reviews mail more than once per day
[11:38:27 CEST] <Compn> so he reviewed it since thursday im guessing
[11:39:14 CEST] <ubitux> he received a mail waiting for approval
[11:39:31 CEST] <ubitux> but nothing since then
[11:39:56 CEST] <Compn> right, resend it
[11:40:38 CEST] <Compn> maybe he clicked on the link 'click here to cancel'
[11:40:42 CEST] <Compn> or whatever it is
[11:41:02 CEST] <ubitux> i doubt that, he would have done that 3 times then
[11:41:14 CEST] <Compn> maybe lou or another ml admin deleted it
[11:41:24 CEST] <ubitux> i'll wait for llogan then i guess
[11:41:37 CEST] <Compn> i dont think we can undelete something
[11:41:45 CEST] <Compn> so if its not in the queue.... its not there
[11:41:47 CEST] <ubitux> yes, but maybe there is an explanation
[11:44:58 CEST] <Compn> what was subject / patch about ?
[11:45:43 CEST] <mateo`> lavf/mov: support gopro firmware udta tag
[11:45:47 CEST] <mateo`> lavf/mov: support gopro hero moments udta tag
[11:45:49 CEST] <mateo`> Compn: ^
[11:46:16 CEST] <Compn> huh weird
[11:46:37 CEST] <ubitux> are we sure validated mails reach the ml?
[11:46:54 CEST] <Compn> which validated ?
[11:47:04 CEST] <ubitux> moderated positively
[11:47:11 CEST] <Compn> if they are in the queue and we approve them, it gets sent to ml, yeah
[11:47:21 CEST] <ubitux> yeah, but does it still work?
[11:47:34 CEST] <Compn> but... if the person has the wrong date, that mail will show up in whatever date the email was sent in.
[11:47:45 CEST] <Compn> so if they have a mail sent in 2020... it gets put in 2020 archive lol
[11:47:57 CEST] <ubitux> sure, but i would get them by mail anyway :)
[11:48:02 CEST] <Compn> is true
[11:48:16 CEST] <Compn> send a mail to ffmpeg-devel from a nonsubscribed mail and i can approve it and we'll see...
[11:49:46 CEST] <ubitux> Compn: done
[11:50:03 CEST] <ubitux> "This is a test"
[11:50:12 CEST] <Compn> Subject: This is a test, please ignore.
[11:50:35 CEST] <ubitux> yes
[11:51:08 CEST] <Compn> seems to work
[11:51:59 CEST] <ubitux> yep, OK...
[11:54:02 CEST] <Compn> ml admins are usually pretty good about not deleting patches ;)
[11:55:02 CEST] <ubitux> so what do you think happened?
[11:56:29 CEST] <Compn> no idea
[12:00:40 CEST] <ubitux> Compn: he just resent them
[12:00:51 CEST] <ubitux> do you see them now?
[12:01:39 CEST] <Compn> yes
[12:02:18 CEST] <Compn> accepted
[12:03:31 CEST] <Compn> dont ask me where patch 1/2 is , its not there
[12:08:31 CEST] <Compn> i added that guy to auto accept :D
[12:08:44 CEST] <Compn> so if he resends patch 1/2 it should come automatically
[12:09:44 CEST] <Compn> michaelni : there is a 2mb mips email stuck in the -devel queue, what do you want done ? i'll let you figure it out.
[12:10:13 CEST] <Compn> michaelni : [PATCH 3/7] avcodec/mips: loongson optimize mmi load and store operators
[12:10:13 CEST] <ubitux> ... ?
[12:10:18 CEST] <ubitux> what
[12:10:23 CEST] <ubitux> the patch 1/2 disappeared?
[12:10:25 CEST] <ubitux> wth
[12:10:44 CEST] <Compn> ubitux : correct. it either got eaten by mailman before it gets to queue, or maybe gmail?
[12:10:59 CEST] <Compn> or maybe he didnt send it
[12:11:01 CEST] <ubitux> did you see it in moderation?
[12:11:05 CEST] <Compn> no
[12:11:07 CEST] <ubitux> he did
[12:11:09 CEST] <ubitux> i was with him
[12:11:14 CEST] <Compn> only the two mails
[12:11:14 CEST] <Compn> lol
[12:11:21 CEST] <ubitux> it's a straightforward git send email
[12:11:28 CEST] <Compn> dont ask me i just live here
[12:11:39 CEST] <ubitux> that's not serious... :(
[12:11:53 CEST] <ubitux> i mean, now i wonder how many ppl got this issue
[12:12:00 CEST] <Compn> we could check mail logs
[12:12:05 CEST] <ubitux> yeah.
[12:12:09 CEST] <Compn> michaelni could
[12:12:14 CEST] <Compn> im not sure where to look ...
[12:12:27 CEST] <ubitux> srsly i'm going to ask him to send him the patch a third time?
[12:13:11 CEST] <Compn> would be smart
[12:13:39 CEST] <Compn> its 6 am here, i'm sorry if my answers arent professional haha
[12:14:40 CEST] <Compn> and yes i agree this is serious problem, i dont like patches being missing :\
[12:15:17 CEST] <ubitux> no pb, thanks for the help
[12:15:31 CEST] <ubitux> Compn: lol now we see it twice
[12:15:51 CEST] <Compn> only patch 1/2 twice haha
[12:16:07 CEST] <Compn> the mysteries of the internet
[12:16:12 CEST] <ubitux> i made him send 1/2 a second time
[12:16:14 CEST] <Compn> ah
[12:16:23 CEST] <ubitux> with the in-reply-to etc
[12:16:38 CEST] <ubitux> well, whatever
[12:17:03 CEST] <ubitux> thanks
[12:17:13 CEST] <Compn> emails are tricky, they can go fast or they can go slow. because of various spam filters and virus scanners
[12:17:15 CEST] <Compn> no problem
[12:18:12 CEST] <Compn> why we need to switch to encrypted and signed emails... :P
[12:18:20 CEST] <Compn> no more spam, no more snoopin
[13:16:58 CEST] <BtbN> Compn, nah, the ML is just slow again it seems. Happens sometimes. I think it's some DNS thing?
[13:47:22 CEST] <Compn> BtbN : if you can explain how dns makes mails slower, i'd like to hear it :D
[13:52:54 CEST] <BtbN> Compn, same way it makes ssh logins slow
[13:53:20 CEST] <BtbN> The spam-filter does a lookup of the hostname, reverse-lookup of the IP, and some other lookups to validate the sender.
[13:53:34 CEST] <BtbN> And if DNS is broken, it runs into a timeout with every request
[14:22:40 CEST] <Compn> dns could have problems in propagation, but i havent seen this with ffmpeg server
[16:07:07 CEST] <cone-089> ffmpeg 03Steve Lhomme 07master:9b462a0b9df6: avcodec/d3d11va: use the proper slice index
[16:07:07 CEST] <cone-089> ffmpeg 03Zhou Xiaoyong 07master:50eee357eb17: configure: loongson disable mipsfpu and mipsdsp optimizations
[17:02:44 CEST] <BtbN> philipl, my Github master is now in a somewhat presentable state. review and test, specially with libnpp, welcome.
[17:03:10 CEST] <BtbN> My remote nvidia machine is offline, so I can't test-run right now, and not compile libnpp.
[17:07:56 CEST] <philipl> BtbN: nice. I'll poke around with it tonight.
[17:15:12 CEST] <philipl> BtbN: quick first observation: AVCUDADeviceContextInternal never gets allocated. so it blows up in device_init
[18:02:12 CEST] <BtbN> philipl, yes, already realized that.
[18:45:05 CEST] <BtbN> philipl, hm, there's kind of a chicken/egg problem.
[18:45:31 CEST] <BtbN> ctx->free needs to free the cuda context. But uninit, which is called first, needs to unload the function it needs to do so.
[19:29:09 CEST] <kierank> BBB: ping
[19:29:19 CEST] <BBB> pong
[20:13:09 CEST] <BtbN> philipl, fixed
[21:13:25 CEST] <philipl> BtbN: Looks logical. Will check tonight.
[00:00:00 CEST] --- Tue Oct 11 2016
1
0
[00:18:20 CEST] <cowai> Can anyone try this? ffmpeg -i test.mkv -c copy -segment_time 10 -segment_list test.ffconcat -f segment test_00%d.mkv && ffmpeg -i test.ffconcat -c copy test_concatted.mkv
[00:19:02 CEST] <cowai> test_concatted.mkv has either artifacts or gaps every 10 second.
[00:19:28 CEST] <cowai> I have tested with a bunch of formats now. and none of them works.
[00:19:35 CEST] <cowai> I am using ffmpeg 3.1.4.
[00:28:25 CEST] <MINIMAN10000> gah there are two things I can't figure out
[00:28:44 CEST] <MINIMAN10000> I might as well create a psuedocommand to try and convey what I can't do lol
[00:29:01 CEST] <MINIMAN10000> ffmpeg -r 20 -i apple.mp4 -f image2 ./apple/%d.png
[00:29:37 CEST] <MINIMAN10000> I want a video to be converted to pngs. Be numbered without leading zeros. Be placed in the relatively /apple folder
[00:30:41 CEST] <MINIMAN10000> in this case I want it to output at a rate of 20 fps while not affecting playback speed ( hopefully i at least did that part right )
[00:30:56 CEST] <MINIMAN10000> assuming it's being played back at 20 fps of course.
[00:32:23 CEST] <furq> if you want the output fps to be 20 then use -r as an output option
[00:32:27 CEST] <furq> also you don't need -f image2
[00:32:31 CEST] <furq> everything else there looks fine
[00:32:46 CEST] <MINIMAN10000> Ah that came from the wiki "The canonical form to work with image sequences is to use the -f image2 argument like this:"
[00:33:11 CEST] <furq> it'll guess that from the file extension
[00:34:18 CEST] <MINIMAN10000> Errored out http://pastebin.com/cne87Zj2
[00:34:46 CEST] <furq> you're missing a %
[00:35:37 CEST] <MINIMAN10000> it ran when I added the extra percent making that command line
[00:35:38 CEST] <MINIMAN10000> ffmpeg -r 20 -i apple.mp4 ./apple/%%d.png
[00:35:59 CEST] <MINIMAN10000> didn't know I was supposed to have 2%s to get it to work
[00:36:13 CEST] <furq> that's weird
[00:36:18 CEST] <MINIMAN10000> maybe % means something in .bat
[00:36:22 CEST] <MINIMAN10000> it could have been eating it itself
[00:36:23 CEST] <furq> oh, windows
[00:36:32 CEST] <furq> yeah your shell was probably screwing it up
[00:36:42 CEST] <agrathwohl> Is there a way, using ffprobe, to determine whether an MP4 containing an H.264 stream is constant frame rate?
[00:37:45 CEST] <MINIMAN10000> whoops forgot i want the images 47x47 lol
[00:37:48 CEST] <MINIMAN10000> i was to busy fixing the actual problems
[00:38:40 CEST] <MINIMAN10000> I shall use scale=47:47
[00:38:48 CEST] <MINIMAN10000> -vf scale that is
[00:41:47 CEST] <MINIMAN10000> lol that ended up a lot more frames and data than anticipated
[00:42:15 CEST] <MINIMAN10000> 13167 frames and 12.7 MB
[01:01:19 CEST] <iive> why 47:47 ? that's odd number
[04:07:29 CEST] <benlieb> I'm encoding video for online viewing. What AAC bitrate should I use?
[04:08:50 CEST] <klaxa> some people claim to be able to hear (and get headaches from? wow) 128 kbps aac
[04:09:13 CEST] <DHE> still, 128k would be a minimum for stereo audio
[04:26:39 CEST] <benlieb> DHE: when I convert with ffmpeg to I have to do anything specific to keep audio stereo?
[04:26:57 CEST] <benlieb> would this preserve it: ffmpeg -i input.wav -c:a aac -b:a 160k output.m4a
[04:29:01 CEST] <DHE> it'll keep the existing number of channels unless you explicit change it (with -ac)
[05:06:50 CEST] <alex88> hi there, I'm using this command 'ffmpeg -rtsp_transport tcp -i rtsp://admin:admin@192.168.1.30:554/play1.sdp -acodec aac -vcodec h264 -pix_fmt yuv420p -profile:v baseline -level 3 /tmp/test.mp4' to convert an rtsp stream to an mp4 video to show it on an ipad
[05:07:21 CEST] <alex88> however I get a gray play button and nothing happens when I tap on it, anyone has a working version of a command to load a video on the ipad?
[05:20:35 CEST] <alex88> oh nvm
[06:12:31 CEST] <Quaraxkad> how do i instruct ffmpeg to NOT use my environment http proxy?
[06:38:24 CEST] <Quaraxkad> also... is there an argument to make ffmpeg download hls streams using more than one connection thread?
[10:14:52 CEST] <mbarisa_> Is it possible to create new mp4 file(which will be just one small video segment of full length mp4 file) from mp4 http stream without downloading the whole mp4 file to disk and feeding it to mp4Parser. If any other stable java library exist which could do the sam job please point me to it.
[10:14:57 CEST] <mbarisa_> I know it can be done with ffmpeg as explained in this post but i want to avoid using full feature heavy library(cutting the mp4 file doesn't involve transcoding the video, this operation just repacks the mp4 file) for just cutting the mp4 file.
[10:15:01 CEST] <mbarisa_> ffmpeg -ss 00:01:00.000 -i "http://myfile.mp4" -t 00:02:00.000 -c:a copy -c:v copy output.mp4
[10:15:04 CEST] <mbarisa_> [10:13]
[10:15:07 CEST] <mbarisa_> ffmpeg -ss 00:01:00.000 -i "http://myfile.mp4" -t 00:02:00.000 -c:a copy -c:v copy output.mp4
[11:21:48 CEST] <cowai_> Is there any good known to work projects that uses ffmpeg to to distribute a single file encoding over several hosts ?
[11:25:02 CEST] <BtbN> no
[11:25:19 CEST] <BtbN> There is no generic way to do that.
[12:07:01 CEST] <cowai_> in theory, if I can split up a video file at exact gop boundings, I can segments individually on several machines, and then concat them together, right?
[12:07:28 CEST] <cowai_> is there a container that would work for that can handle most codecs?
[12:07:46 CEST] <cowai_> lets say the audio is DTS and I want to keep that, but rerender the video.
[12:09:03 CEST] <Infiltrator> cowai_: mkv usually handles everything.
[12:09:39 CEST] <furq> i would guess that if mpegts doesn't handle it then you've got a problem somewhere else
[12:09:54 CEST] <cowai_> Infiltrator: ffmpeg -i test.mkv -c copy -segment_time 10 -segment_list test.ffconcat -f segment test_00%d.mkv && ffmpeg -i test.ffconcat -c copy test_concatted.mkv
[12:10:19 CEST] <cowai_> test_concatted.mkv always has gaps and displays errors in vlc in the messages console at the segment points
[12:10:32 CEST] <cowai_> mpegts works better, but not always.
[12:10:48 CEST] <furq> does vlc show errors with no audio
[12:11:05 CEST] <cowai_> with mkv, but not with mpegts, I think.
[12:11:15 CEST] <cowai_> let me check.
[12:14:21 CEST] <furq> it might be worth trying mpegts as the final output format as well
[12:15:25 CEST] <furq> if that doesn't work reliably with no audio then i suspect there's a bug somewhere
[12:16:41 CEST] <cowai_> I tried now with mpegts with no sound, and there is no errors. But there is a slight jump/gap at the segment points.
[12:17:02 CEST] <bencoh> which isn't good either
[12:17:34 CEST] <cowai_> is there a place for static linux builds where I can test older versions?
[12:26:56 CEST] <Spring> does the WebM container support soft subtitles? Or only hard encoded subs?
[12:28:04 CEST] <furq> webvtt is part of the webm spec, but it's not clear if it's supported yet
[12:29:50 CEST] <furq> looks like it isn't
[12:29:57 CEST] <furq> https://trac.ffmpeg.org/ticket/5434
[12:32:01 CEST] <furq> cowai_: it should be easy enough to build old versions of ffmpeg yourself
[12:32:11 CEST] <furq> if you're not encoding anything then you don't need any external libs
[12:35:18 CEST] <cowai_> The end goal is the encode too,
[12:35:46 CEST] <cowai_> I am creating a small script to show my problems more clearly.
[12:36:00 CEST] <cowai_> Care to take a look when I am finished?
[12:36:20 CEST] <furq> sure
[12:36:50 CEST] <furq> even if you need to encode you can probably just use your system's libx264
[12:39:38 CEST] <Spring> furq, so "officially" WebM doesn't subs but there is a proposal to have it added even so?
[12:40:14 CEST] <furq> officially it will support subs, but it doesn't yet
[13:18:52 CEST] <cowai_> furq: http://pastebin.com/pVPcGJZR
[13:19:20 CEST] <cowai_> not the best source to test with, but you will see errors and a small gap too in vlc.
[13:19:52 CEST] <cowai_> put ffmpeg=ffmpeg in the second line of the script if you dont want to get the static build referenced.
[13:54:07 CEST] <mbarisa> Is it possible to create new mp4 file(which will be just one small video segment of full length mp4 file) from mp4 http stream without downloading the whole mp4 file to disk and feeding it to mp4Parser. If any other stable java library exist which could do the sam job please point me to it.
[13:54:12 CEST] <mbarisa> I know it can be done with ffmpeg as explained in this post but i want to avoid using full feature heavy library(cutting the mp4 file doesn't involve transcoding the video, this operation just repacks the mp4 file) for just cutting the mp4 file.
[13:54:16 CEST] <mbarisa> ffmpeg -ss 00:01:00.000 -i "http://myfile.mp4" -t 00:02:00.000 -c:a copy -c:v copy output.mp4
[13:54:19 CEST] <mbarisa> [10:13]
[13:54:22 CEST] <mbarisa> ffmpeg -ss 00:01:00.000 -i "http://myfile.mp4" -t 00:02:00.000 -c:a copy -c:v copy output.mp4
[13:55:42 CEST] <mbarisa> this works, but it is inexact
[13:56:06 CEST] <mbarisa> when I use encoding, it is too slow for cache-ing part of video
[13:56:35 CEST] <mbarisa> and using like this it is fast and works, but it fails 1-2-3 seconds, depending where I cut
[14:21:22 CEST] <cowai_> furq: Care to look at my script?
[14:26:38 CEST] <fqtw> im rendering my webcam stream using opengl, now i want to use libffmpeg to do datamoshing on my webcam stream before it is rendered. datamoshing is done by removing i-frames at certain times, so i have to encode webcam frames into AVPackets and then skip them when packet->pict_type == AV_PICTURE_TYPE_I. but which frame should i use instead when i dont use the current i-frame?
[14:27:22 CEST] <fqtw> http://forum.glitchet.com/t/tutorial-make-video-glitch-art-how-to-datamosh-…
[14:28:38 CEST] <fqtw> https://i.imgur.com/pXNEjHO.gif
[14:29:53 CEST] <fqtw> should i just duplicate the last frame?
[14:30:02 CEST] <fqtw> the one before the i-frame?
[14:32:22 CEST] <BtbN> fqtw, there is no libffmpeg
[14:32:27 CEST] <BtbN> there is libav*
[14:32:36 CEST] <fqtw> BtbN: thats what i mean
[14:32:54 CEST] <BtbN> Ok, just making sure. There have been plenty people trying to compile ffmpeg.c as a library.
[14:37:52 CEST] <Quaraxkad> is there an argument to make ffmpeg download hls streams using more than one connection/thread?
[14:38:22 CEST] <BtbN> no
[15:12:12 CEST] <cowai_> Anybody know of a custom solution to distribute encoding of a file on multiple machines on linux?
[15:43:50 CEST] <flux> of a single file?
[15:44:27 CEST] <flux> I used condor for distributing encodings of multiple files to condor clients that share the same nfs mount for data
[15:45:07 CEST] <flux> I guess it would just be a matter of preprocessing to distirbute a single file (ie. a new condor job that take the file, splits it into parts, submits jobs to encode parts, waits for results, submits a job to join the parts)
[15:48:59 CEST] <cowai_> flux: single file yes.
[15:50:03 CEST] <cowai_> I have spent many hours this weekend trying just that. The problem is that when I stich parts back together, there are small gaps inbetween.
[15:50:28 CEST] <cowai_> I have dts sound and i want to just stream copy that.
[15:50:28 CEST] <flux> that's probably because the segments don't start and stop exactly the same time
[15:50:50 CEST] <flux> ok, so you encode only video and remove audio from the video first?
[15:50:54 CEST] <cowai_> well, I havent found a portable way to produce that.
[15:50:58 CEST] <flux> I guess my theory falls apart then :)
[15:51:06 CEST] <cowai_> I have tried everything mate ;)
[15:51:08 CEST] <flux> howo do you split them?
[15:51:15 CEST] <cowai_> -f segment -an
[15:51:35 CEST] <flux> hmm, ok
[15:51:48 CEST] <cowai_> also tried manually with -ss -to pts_time that I know are key frames
[15:51:57 CEST] <flux> well I guess you could compare the outputs of ffprobe -show_streams before and after your operation to see where it goes wrong
[15:52:02 CEST] <flux> and even to individual segemnts
[15:52:10 CEST] <flux> then complain to the mailing list if you have a reproducible test case ;-)
[15:56:55 CEST] <elliotd123> Hi guys, I'm looking at a live UDP stream with ffmpeg and showing lower fps on output than the input framerate. No discontinuities, so it doesn't appear to be packet loss. What else could cause this?
[16:05:36 CEST] <jkqxz> elliotd123: Any of the framerate controls may drop frames (-r options, filters), and the A/V sync code can do it too (add "-vsync passthrough" to switch that off).
[16:08:10 CEST] <BtbN> Are you transcoding, and it can't keep up?
[16:14:05 CEST] <elliotd123> well I see the issue when I just transcode to null, but it's definitely not a cpu starvation issue. I'll try the vsync passthrough to see if that helps
[16:17:50 CEST] <elliotd123> jkqxz: I'll also note that I see this even when there aren't any framerate controls specified. Are there any by default?
[16:19:09 CEST] <elliotd123> jkqxz: It looks like with "-vsync passthrough" I'm still seeing the low fps (It's 58, input is 59.94, so it's not significantly lower)
[16:19:27 CEST] <BtbN> elliotd123, are you specifying -c copy?
[16:19:37 CEST] <BtbN> Because otherwise it will pointlessly transcode
[16:19:54 CEST] <elliotd123> "ffmpeg -i udp://@239.1.1.6:59006 -f null -vsync passthrough /dev/null"
[16:20:02 CEST] <BtbN> yes, that's transcoding.
[16:20:32 CEST] <BtbN> just do -c copy -f null -
[16:20:38 CEST] <BtbN> and see how fast that goes.
[16:20:59 CEST] <elliotd123> ok I'm trying with "-c copy" - so if this works, then there must be some issue on the transcoding side?
[16:21:24 CEST] <BtbN> Transcoding is slow, your CPU might just not be up to it. And it's pointless, unless you actually want to transcode.
[16:22:46 CEST] <elliotd123> Yeah we want to transcode, actually our client wants to transcode, so I'm not sure the exact format, etc, so I'll have to find that out
[16:23:19 CEST] <elliotd123> looks like that might be it though. Still, we're showing <40% CPU usage on the host
[16:23:54 CEST] <BtbN> might be just one or two cores maxed out
[16:24:08 CEST] <elliotd123> yep
[16:24:55 CEST] <elliotd123> Is the transcode process multithreaded though?
[16:25:19 CEST] <BtbN> ffmpeg is strictly single threaded. Threading only happens within a codec/filter.
[16:28:16 CEST] <elliotd123> Wait I'm still seeing the issue actually. Must be intermittent? Is it possible for the framerate to change?
[16:35:11 CEST] <elliotd123> yeah it sits fine for a while at 60-61fps and then drops to 56-58 or so, sometimes lower by what I can see
[16:37:29 CEST] <BtbN> Seems like normal fluctioations to me.
[16:39:36 CEST] <shapsuk> Hey guys Im an iOS developer and looking at using FFmpeg in my app so that I can support additional formats however Im very new to the library and not sure how to get started. Ive managed to get the lib built for iOS and I can successfully call things like avcodecs_license() so Ive definitely got it all built and imported so that I can access it from my code (Swift)
[16:39:36 CEST] <shapsuk> What Id really like is to start with something simple, like play a file from disk that I know doesnt normally work on iOS natively. Its a short movie clip that uses an Apple Pro-Res codec. It works in things like VLC so Im fairly certain FFmpeg should work fine.
[16:39:37 CEST] <shapsuk> Any help would be appreciated.
[16:41:38 CEST] <elliotd123> BtbN: Yeah, I just have to figure out how to communicate that with our client
[16:43:21 CEST] <BtbN> It's probably 59.94 FPS, and with network jitter, the ocassional dropped packet, and buffering, it jumps around a bit.
[16:43:58 CEST] <elliotd123> dropped packet will give us a discontinuity error, and haven't received a single one of those. I don't expect much network jitter either, since it's all on the same switched LAN
[16:50:44 CEST] <shapsuk> Is this the right channel to ask that question? Sorry, dont want to be a nuisance
[16:51:57 CEST] <sfan5> yes this is the correch channel
[16:52:55 CEST] <sfan5> shapsuk: try taking a look at these: https://github.com/FFmpeg/FFmpeg/tree/master/doc/examples
[16:54:31 CEST] <shapsuk> Great thanks I missed those do you know if there are Obj-C or Swift examples around?
[16:54:53 CEST] <shapsuk> these looks great either way
[16:55:21 CEST] <BtbN> ffmpeg is C, any only C.
[16:56:55 CEST] <sfan5> also note that ffmpeg will only assist you in reading the video file, not in presenting it
[16:57:28 CEST] <shapsuk> @sfan5 yeah I realise that I mistyped before
[16:58:21 CEST] <shapsuk> ok C is fine. I can always create some simple wrappers around the stuff I need, similar to these examples actually.
[16:58:58 CEST] <shapsuk> is it ok if I ask a couple more questions& just some stuff Id like cleared up
[16:59:57 CEST] <shapsuk> first off, I understand FFmpeg should be able to read the data, my question here is in what format does it give it back to me? Since Im on iOS, ideally I need to get CVPixelBuffers or CMSampleBuffers
[17:01:45 CEST] <BtbN> If you only decode, you get a frame with whatever pixel format is native to the decoder, usually yuv420p or nv12 in case of hardware decoders.
[17:01:57 CEST] <shapsuk> My second question is in regards to VideoToolbox specifically VTDecompression I saw references all over about this and if Ive understood correctly, FFmpeg should automatically use this when its available? Do you know if it uses the hardware acceleration even for files that are not H.264?
[17:02:10 CEST] <BtbN> ffmpeg.c does at least.
[17:05:39 CEST] <shapsuk> right, so when I get back the data, I should be able to allocate a new pixelBuffer with that pixelFormat (ideally) and get the frame from it?
[17:07:38 CEST] <shapsuk> is it possible to ask the decoder to return a specific pixel format (assuming its supported) ?
[17:08:59 CEST] <jkqxz> libavcodec decodes into normal memory (just a big array of bytes). If you can make your iOS thing look like normal memory then you can decode straight into it, but if not you will need to create your thing out of the memory region afterwards (which may involve a copy).
[17:09:25 CEST] <shapsuk> right
[17:09:32 CEST] <jkqxz> Yes the pixel format is settable, but most decoders will only give you one choice there.
[17:09:41 CEST] <shapsuk> ah ok
[17:11:36 CEST] <shapsuk> to decode my movie files, should I be using libavcodec? I thought I needed lbavformat and have been looking into that. The movie files is an .mov file with Pro-Res codec
[17:12:42 CEST] <bencoh> libavformat contains demuxers / parsers, libavcodec holds decoders
[17:12:43 CEST] <jkqxz> libavformat reads the container (the mov file format), libavcodec decodes the video inside it (the prores stream).
[17:15:52 CEST] <shapsuk> oh so does that mean I need to start with libavformat in order to read the file?
[17:16:06 CEST] <shapsuk> hmm.. getting confused. Maybe the examples will help here
[17:20:03 CEST] <shapsuk> sorry I had to switch devices
[17:22:01 CEST] <someperson234789> Hey -- I've been trying to google for a little while now. Hoping someone can point me in the right direction. I'm getting "chunked" audio when doing a no-op pad filter. http://pastebin.com/Kgh4wfMA
[17:48:26 CEST] <benbro> is there a way to tell if mp4 file index is at the start (faststart) or end?
[17:50:36 CEST] <jkqxz> Cut the file in half and try to play it. If it works, then it's at the start.
[17:51:04 CEST] <benbro> jkqxz: how do I cut the file in half?
[17:52:44 CEST] <bencoh> :D
[17:53:05 CEST] <jkqxz> "dd if=file_to_test.mp4 of=tmp.mp4 count=10000", then play tmp.mp4. (Cuts the first 50MB out, reduce the count if the file is smaller.)
[17:53:53 CEST] <benbro> thanks
[17:53:58 CEST] <furq> benbro: mp4box -info
[17:53:58 CEST] <jkqxz> (While it works, that answer is somewhat silly. There is probably a proper way to do it...)
[17:55:49 CEST] <benbro> pip install qtfaststart
[17:55:55 CEST] <benbro> qtfaststart -l video.mp4
[17:56:09 CEST] <benbro> if the moov atom is after the mdat atom, it's bad
[17:56:38 CEST] <benbro> thanks
[17:56:46 CEST] <furq> on which note
[17:56:52 CEST] <shapsuk> sorry -- jumped in and out of some meetings and then realised my devices kept switching.
[17:56:52 CEST] <shapsuk> if I have an .mov file, can I pass this directly to libavcodec or do I need to do something first with libavformat?
[17:56:53 CEST] <benbro> http://superuser.com/a/559532
[17:56:54 CEST] <shapsuk> I only see one decode example on the examples page and its not dealing with a container type
[17:57:05 CEST] <furq> is there a way of moving the moov atom that doesn't involve rewriting the whole file to disk
[17:57:14 CEST] <benlieb> I've heard that h264 / aac is the combination that will play in the largest number of browsers. Does the aac encoder matter? In my library of videos I see various: aac (LC), aac (libfdk_aac) etc
[17:57:24 CEST] <furq> benlieb: makes no difference
[17:57:32 CEST] <furq> what might matter is aac-lc vs aac-he
[17:57:47 CEST] <furq> lc is more widely supported
[17:59:21 CEST] <benlieb> furq: I"m not sure what those are
[17:59:32 CEST] <benlieb> does that affect me?
[17:59:35 CEST] <furq> https://en.wikipedia.org/wiki/High-Efficiency_Advanced_Audio_Coding
[18:00:32 CEST] <benlieb> would that show up as aac-le as the audio encoding?
[18:01:21 CEST] <benlieb> I have over 8,000 vids in my company library, created over 10 years, I'm trying to get them "ready" for online viewing instead of the older "download" model. It's a bit daunting.
[18:01:22 CEST] <jkqxz> shapsuk: The demuxing_decoding example is probably the one you want.
[18:01:48 CEST] <benlieb> furq: ^
[18:02:06 CEST] <furq> Stream #0:0(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 48 kb/s (default)
[18:02:10 CEST] <furq> it should should up as something like that
[18:02:47 CEST] <furq> he-aac is fairly widely supported though
[18:03:37 CEST] <furq> very old iOS devices might not handle it properly
[18:04:01 CEST] <furq> every android device and every desktop browser should handle it fine
[18:04:19 CEST] <benlieb> furq: I'm probably not going to worry about finding any old vids with that encoder if it's new.
[18:04:56 CEST] <benlieb> furq: is libfdk_aac a good choice for converting old non-aac videos, and encoding new ones moving forward?
[18:05:03 CEST] <furq> it's the best aac encoder in ffmpeg
[18:05:45 CEST] <furq> unless you're on osx in which case i think you can use apple aac through videotoolbox
[18:06:11 CEST] <benlieb> furq: best in what way? My real concern is user compatibility and longevity of compatibility
[18:06:23 CEST] <furq> the encoder makes no difference for compatibility
[18:06:33 CEST] <furq> as long as it produces a compliant aac bitstream, they're all the same
[18:07:26 CEST] <furq> fdk is (probably) the highest quality at a given bitrate
[18:07:47 CEST] <furq> other than closed-source encoders which aren't in ffmpeg
[18:09:49 CEST] <shapsuk> jkqxz: thanks
[18:11:00 CEST] <shapsuk> I've managed to get the codec loaded into a context
[18:11:05 CEST] <shapsuk> what exactly is the contet?
[18:11:07 CEST] <shapsuk> what exactly is the context?
[18:14:18 CEST] <BtbN> The native aac encoder is perfectly fine though
[18:14:26 CEST] <BtbN> you are not going to hear a difference
[18:19:00 CEST] <benlieb> furq: so aac (LC) is ok?
[18:19:26 CEST] <furq> yes
[18:20:16 CEST] <furq> aac anything is probably fine
[18:25:40 CEST] <shapsuk> jkqxz: when configuring the context, am I specifying the details of the input file? I might not know the input file details, like frame-rate. I assumed these would be auto discovered?
[18:31:04 CEST] <maziar> how to record from RTMP to 1080p mp4
[18:32:20 CEST] <shapsuk> can anyone confirm for me whether or not the decoders are hardware accelerated on iOS since VideoToolbox is now available ?
[18:35:12 CEST] <BtbN> The VideoToolbox decoder is probably using VideoToolbox.
[18:47:15 CEST] <someperson234789> huh. I changed output to .mov instead of .mkv and problem's gone.
[19:21:19 CEST] <asdbimbajos> greetings
[19:21:25 CEST] <asdbimbajos> is there anyone
[19:21:27 CEST] <asdbimbajos> ?
[19:51:40 CEST] <shapsuk> Hey guys.
[19:52:57 CEST] <shapsuk_> I'm currently using av_register_all() but wondering if this is expensive. Memory perhaps?
[19:54:18 CEST] <shapsuk__> Wondering if I should instead load only what I need?
[19:54:27 CEST] <kepstin> unless you're on a really-memory-limited system, not enough to matter
[19:55:35 CEST] <kepstin> if you know you only need a few specific codecs, it certainly won't hurt to register only the needed ones, but otherwise...
[19:56:34 CEST] <shapsuk___> Any advice appreciated
[19:58:09 CEST] <shapsuk___> FYI if anyone else comes along asking for a great little tutorial they can easily follow along with send them here
[19:58:11 CEST] <shapsuk___> http://dranger.com/ffmpeg/tutorial01.html
[19:58:21 CEST] <shapsuk___> I found this today. Very useful
[20:16:21 CEST] <bindwolf> greetings
[22:16:11 CEST] <kibibyte> hi
[22:16:17 CEST] <kibibyte> i ahev question
[22:17:16 CEST] <kibibyte> ffmpeg inputfile -acodec copy -vcodec copy output.mp4
[22:17:24 CEST] <kibibyte> how oes it know which code to use ?
[22:17:34 CEST] <kibibyte> how does it know which codec to use ?
[22:17:45 CEST] <kibibyte> copy is not codec
[22:23:55 CEST] <CoJaBo> ..?
[22:24:27 CEST] <kibibyte> CoJaBo, in manual -acodec is option for setting codec
[22:24:38 CEST] <kibibyte> what "copy" then
[22:24:41 CEST] <kibibyte> s
[22:24:54 CEST] <CoJaBo> Copy just copys the stream
[22:25:06 CEST] <CoJaBo> (without transcoding)
[22:25:19 CEST] <kibibyte> so ffmpeg inputfile -acodec copy -vcodec copy output.mp4
[22:25:28 CEST] <kibibyte> its just copies file ?
[22:25:53 CEST] <CoJaBo> Basically; I think some call that "remuxing"; it copies it to a new container, but without reencoding any of the streams
[22:26:38 CEST] <DHE> and it's usually fast enough that the disk itself is the bottleneck
[22:26:52 CEST] <DHE> but it lets you convert .avi to mp4, or mkv to webm, etc
[22:26:53 CEST] <CoJaBo> Doing that is useful to convert e.g., MP4 to MKV or vice-versa (assuming the codecs are all supported in the target container)
[22:27:34 CEST] <kibibyte> but how does it know that i want convert input to mp4
[22:27:43 CEST] <kibibyte> from output extension ?
[22:27:44 CEST] <DHE> because you named the result output.mp4
[22:27:46 CEST] <CoJaBo> The file extension sets the container format
[22:27:51 CEST] <kibibyte> ohh
[22:27:53 CEST] <CoJaBo> -f can be used to override it tho
[22:28:21 CEST] <CoJaBo> (tho it's pretty rare to actually need -f, unless you're piping stuff)
[22:30:43 CEST] <kibibyte> ok thx
[23:08:12 CEST] <LeoB> Hello! I need help!
[23:08:53 CEST] <LeoB> I am capturing a h264 video stream from a IP Camera using OpenCV ffmpeg videoIO
[23:09:16 CEST] <LeoB> it reads frames using av_read_frame
[23:10:08 CEST] <LeoB> my main problem is that I have not enought processing power to deal with all frames
[23:11:24 CEST] <LeoB> is there a way to capture from a h264 stream, only picking the latest captured frame?
[23:11:35 CEST] <BtbN> no
[23:11:46 CEST] <BtbN> unless it's IFrame-Only, which is unlikely.
[23:12:07 CEST] <BtbN> but what kind of underpowered device are you on that can't even decode h264?
[23:13:17 CEST] <LeoB> I am on a Core i5, but I do much image processing on the same thread
[23:14:50 CEST] <BtbN> move that to a diffrent thread then
[23:15:25 CEST] <LeoB> It would be fine, but I need to deal with 4 cameras, (one on each thread)
[23:15:55 CEST] <LeoB> having a thread for each camera would be very expensive
[23:16:57 CEST] <BtbN> each h264 decoder spawns one thread for each (virtual) core anyway
[23:17:17 CEST] <BtbN> At least I think it does, I'm actually not 100% sure if the h264 decoder is multi threaded.
[23:18:24 CEST] <BtbN> yes, it supports at least slice threading.
[23:20:14 CEST] <LeoB> It should do more parallell work then
[23:20:26 CEST] <LeoB> for me it's like only one thread is being used
[23:20:51 CEST] <LeoB> (one processor core, not thread)
[23:21:39 CEST] <BtbN> Well, all the threads are doing nothing while you are busy in opencv
[23:21:50 CEST] <furq> isn't that desirable if you're capturing from four devices
[23:23:00 CEST] <LeoB> true,
[23:30:58 CEST] <nyuszika7h> how do I find out the audio bitrate in a video if neither MediaInfo nor ffprobe show it?
[23:31:02 CEST] <nyuszika7h> it was encoded with libfaac
[23:35:18 CEST] <furq> are you using the latest mediainfo
[23:36:14 CEST] <furq> support for getting stream bitrates in mkv with >1 vbr stream was added relatively recently
[23:36:23 CEST] <furq> failing that you could just demux the stream
[23:37:15 CEST] <nyuszika7h> hmm I'm still on 0.7.87, will update
[23:37:53 CEST] <nyuszika7h> 0.7.89 still doesn't show it
[23:38:27 CEST] <nyuszika7h> even when demuxed it only tells me it's VBR
[23:38:36 CEST] <nyuszika7h> but actually I can play that in foobar2000 and that gives me some idea
[00:00:00 CEST] --- Tue Oct 11 2016
1
0
[01:38:56 CEST] <cone-656> ffmpeg 03Michael Niedermayer 07master:7ba7b96dd36b: doc/examples/http_multiclient: Fix "doc/examples/http_multiclient.c:43:9: warning: passing argument 4 of av_opt_get from incompatible pointer type"
[01:41:08 CEST] <Chloe> michaelni: err, that's a massive commit message.
[01:43:01 CEST] <Chloe> (I also didnt see it on the ml)
[01:44:48 CEST] <jamrial_> Chloe: it's a simple fix
[01:57:58 CEST] <Chloe> jamrial_: the latter comment was just an observation with no weight. And the former is just nickpicking, I guess it doesnt really matter. :/
[19:37:58 CEST] <carabia> Hey, I acknowledge it's not the completely right forum to ask this, but it's close. A question on mp3 headers. Am I guaranteed to find the first header of an mp3 file contained within the first 32 bytes of the file?
[19:40:04 CEST] <carabia> well, 34 in case of the CRC?
[19:56:16 CEST] <rcombs> carabia: you could easily have an ID3v2 tag larger than that
[20:07:44 CEST] <Compn> carabia : to answer question, no. plenty of mp3 files without headers :D
[20:08:09 CEST] <Compn> carabia : did you check our mp3 samples ?
[20:08:17 CEST] <Compn> guess we dont have too many of them.
[20:12:39 CEST] <carabia> Ah yes, crap. I forgot all about id3-tags.
[20:13:30 CEST] <cone-646> ffmpeg 03Moritz Barsnick 07master:f71c98ee12f9: tools: fix grammar error
[20:13:30 CEST] <cone-646> ffmpeg 03Moritz Barsnick 07master:3305f7102528: lavc: fix typos
[20:13:31 CEST] <cone-646> ffmpeg 03Moritz Barsnick 07master:f4e4bde1f4cf: lavfi: fix typos
[20:13:34 CEST] <cone-646> ffmpeg 03Moritz Barsnick 07master:468c596a31ca: lavf: fix typos
[20:13:34 CEST] <cone-646> ffmpeg 03Moritz Barsnick 07master:3e5d27d7a735: cmdutils: fix typos
[20:13:57 CEST] <carabia> Compn: and no i meant a frame header
[20:14:21 CEST] <carabia> but yea. the id3-tags mess this one up. That needs to go first.
[20:14:35 CEST] <carabia> Thanks rcombs for pointing that out, heh
[21:30:19 CEST] <cone-646> ffmpeg 03Muhammad Faiz 07master:47d2be3056fa: avfilter/firequalizer: fix blackman window calculation
[23:15:50 CEST] <atomnuker> michaelni: I can't replicate the segfault here
[23:16:01 CEST] <atomnuker> I configure using "--cc='ccache gcc' --arch=x86_32 --target-os=linux --extra-cflags=-m32 --extra-ldflags=-m32 --enable-cross-compile --disable-devices"
[23:17:56 CEST] <michaelni> atomnuker, i guess its a mater of random chance to be unaligned
[23:19:19 CEST] <atomnuker> does changing every mova to movu fix the bug?
[23:19:58 CEST] <atomnuker> (it should only happen in pow34 since band quantization is always done on power of two sizes)
[23:24:12 CEST] <jamrial> atomnuker: assuming it's because of alignment and not overread then it should. but i think it's a better idea to align the buffers instead
[23:47:34 CEST] <Gramner> atomnuker: you need to align the buffers ("float M[128], S[128];" at least, didn't check if there are others) when you use them for SIMD. it's likely that they just randomly happen to end up aligned when you're testing it so everything accidentally works
[23:49:09 CEST] <Gramner> michaelni's backtrace shows that that's the reason for the crash (ecx = 0xffffc4dc is not 16-byte aligned)
[00:00:00 CEST] --- Mon Oct 10 2016
1
0
[02:13:37 CEST] <Enverex> Is it possible to use h264_qsv whilst a dedicated card is also present? My Broadwell iGPU is present and active (kernel sees it) but no combination of options in ffmpeg seem to work
[02:13:49 CEST] <Enverex> I -always- get "[h264_qsv @ 0x55c0555f5840] Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode."
[02:21:11 CEST] <jkqxz> Enverex: You have a "-b:v $something" option already? Add "-maxrate $something" too: the libmfx code declares ABR support but it isn't actually supported, so you need push it into using CBR instead.
[02:36:35 CEST] <Enverex> jkqxz: I do. Adding a maxrate didn't seem to help.
[02:36:46 CEST] <BtbN> Did you patch your kernel and stuff for QSV to work at all?
[02:37:06 CEST] <BtbN> If your intel card has a dri device, you can use it via vaapi.
[02:37:11 CEST] <Enverex> BtbN: I have all the deps installed, wasn't aware it needs kernel patches though, that's a bit extreme.
[02:37:34 CEST] <Enverex> BtbN: It's been assigned dri1 (my actual card's on dri0) so I'll try that.
[02:37:36 CEST] <BtbN> it needs kernel patches, libva patches, libdrm patches, and a patched/special libva-intel-driver.
[02:38:05 CEST] <BtbN> So basically, just use vaapi and forget QSV exists.
[02:38:06 CEST] <Enverex> Wow, that's really naff.
[02:40:50 CEST] <jkqxz> The one supported CentOS version does work. Anything else is Not Fun to set up.
[02:42:06 CEST] <BtbN> It just messes up the entire system because it overwrites a bunch of system files.
[02:42:08 CEST] <jkqxz> (Definitely into "requires only minimal configuration and tweaking" territory <http://www.xkcd.com/1742/>.)
[02:45:58 CEST] <Enverex> Well I tried vaapi which gave me "Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto-inserted scaler 0'" so I added "-vf
[02:46:16 CEST] <Enverex> 'format=nv12,hwupload'" which is apparently needed, but that fails with [AVFilterGraph @ 0x5638a9b85a40] No such filter: 'format=nv12,hwupload'
[02:54:09 CEST] <Enverex> Should VAAPI need a lot of faffing around to work? x264 and nvenc seemed pretty simple but this one doesn't seem to like anything.
[02:55:47 CEST] <jkqxz> Paste your command line.
[02:56:24 CEST] <Enverex> It's a large script, I'll try and break it down to what it would be running
[02:58:31 CEST] <jkqxz> VAAPI only works with frames in GPU memory, so you need the hwupload instance to copy them there. (Or do the whole operation there.)
[02:59:43 CEST] <Enverex> Is there a proper example of this anywhere? The few I've found were very basic and resulted in this error
[02:59:54 CEST] <Enverex> My command line is basically - ffmpeg -vaapi_device /dev/dri/renderD129 -vsync 1 -strict -2 -f x11grab -s ${currentRes} -i :0.0 -f pulse -ac 2 -channel_layout stereo -i default -c:a libfdk_aac -af volume=1.0 -b:a ${audioRate}k -cutoff 18000 -vaapi_device /dev/dri/renderD129 -c:v h264_vaapi -profile:v high -preset slow -b:v 10M ${recordLocation}
[03:00:19 CEST] <Enverex> (ignore vaapi_device being there twice, that's a copy/paste error)
[03:03:51 CEST] <jkqxz> My command line lying around for recording the screen in X: "ffmpeg -y -vaapi_device /dev/dri/renderD128 -video_size 1920x1080 -framerate 30 -f x11grab -i :0 -vf 'hwupload,scale_vaapi=1920:1080:nv12' -c:v h264_vaapi out.mp4".
[03:05:28 CEST] <jkqxz> x11grab gives you bgr0, so you need the filter chain to convert as well as upload. That one converts on the GPU side, "-vf 'format=nv12,hwupload'" would do the same thing converting on the CPU side.
[03:08:35 CEST] <Enverex> Same issue as before, "no such filter".
[03:08:42 CEST] <Enverex> Is there some way to list valid filters?
[03:08:49 CEST] <jkqxz> No such filter what?
[03:09:03 CEST] <jkqxz> ffmpeg -filters
[03:10:43 CEST] <Enverex> jkqxz: [AVFilterGraph @ 0x557ac979c8e0] No such filter: 'hwupload,scale_vaapi=1280:720:nv12'
[03:11:34 CEST] <Enverex> hwupload and scale_vaapi show as available filters...
[03:12:00 CEST] <jkqxz> Commas separate filters, they can't appear in filter names. Is that some sort of weird character which looks like a comma but isn't, or something like that?
[03:13:03 CEST] <Enverex> Nope, tried again, copy/pasting your filter list as a test (and changing the res), but same error
[03:13:46 CEST] <jkqxz> Um. Your shell is doing something nasty to the command, maybe?
[03:14:07 CEST] <Enverex> Yeah, it was the single quotes around the -vf argument
[03:14:18 CEST] <Enverex> -vf 'hwupload,scale_vaapi=1920:1080:nv12' doesn't work -vf hwupload,scale_vaapi=1920:1080:nv12 does
[03:18:10 CEST] <Enverex> Well, at least it's sorted. Thanks for the help
[06:06:25 CEST] <s0126h> hy is it that all scratched up DVD can play fine but bluray with no visible scrach cannot even play fine
[06:10:16 CEST] <Wilawar> Might be bad luck or maybe the Blu-Ray is of lower quality
[06:58:28 CEST] <s0126h> wilawar they are all commercial dvd/bluray
[07:41:26 CEST] <Wilawar> Doesn't mean they're the same quality
[07:47:02 CEST] <Woof0> anyone know why I'm getting [AVFilterGraph @ 0x265ea60] No such filter: 'drawtext'
[07:47:02 CEST] <Woof0> I've configured with --enable-libfreetype but its not showing up configuration: --enable-gpl --enable-nonfree --enable-pthreads --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-encoder=png
[08:18:30 CEST] <Woof0> Super weird I ./configured with --enable-libfreetype :/
[09:10:36 CEST] <bencoh> Woof0: missing freetype headers (-dev package on most distribs I suppose) ?
[09:12:01 CEST] <Woof0> bencoh: yeah I dunno lemme see
[09:14:44 CEST] <Woof0> bencoh: libfreetype6-dev is already the newest version (2.6.1-0.1ubuntu2).
[09:15:18 CEST] <bencoh> then you'll have to check config log
[09:20:09 CEST] <Woof0> which config logs are you refering to?
[09:23:13 CEST] <bencoh> config.log iirc
[09:25:07 CEST] <Woof0> libfreetype='yes'
[09:27:22 CEST] <Woof0> I mean there is alot of instances of freetype in the log file here but I'm digginaround and not really seeing anything that stands out
[09:31:00 CEST] <Woof0> Ah I thunk I may have fixerd it
[09:50:43 CEST] <Woof0> looks like its working
[09:50:58 CEST] <Woof0> and if I told you what the cause was ... lol
[10:21:23 CEST] <bencoh> meh, he could've explained the cause ...
[10:52:48 CEST] <kivutar> hello, what is the configure flag to have flac builtin?
[10:54:19 CEST] <relaxed> kivutar: flac support is built by default
[10:55:00 CEST] <kivutar> then I may have a flag that remove it, because I get the following error:
[10:55:13 CEST] <kivutar> Cannot find acodec flac.
[10:56:39 CEST] <kivutar> my version: http://dpaste.com/19FNZ3Q
[11:00:47 CEST] <relaxed> that's the record for most configure options
[11:01:21 CEST] <kivutar> I notice that i'm using
[11:01:22 CEST] <kivutar> --disable-encoders --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2
[11:01:42 CEST] <kivutar> maybe I should do a --enable-encoder=flac?
[11:01:55 CEST] <relaxed> yes
[11:02:12 CEST] <kivutar> ok thanks
[11:02:28 CEST] <kivutar> I guess I need to package flac first?
[11:03:16 CEST] <relaxed> ffmpeg uses its own flac encoder
[11:03:52 CEST] <relaxed> I have arm build here, by the way
[11:03:58 CEST] <relaxed> builds*
[11:04:16 CEST] <relaxed> https://www.johnvansickle.com/ffmpeg/
[11:13:07 CEST] <kivutar> ok thanks, so I can remove my flac package
[11:13:23 CEST] <kivutar> i'm doing a distro from source, but thanks anyway
[12:57:36 CEST] <cowai> I am trying to distribute encoding with ffmpeg. I have split the source file into multiple segments with -f segment, encode them to libx264 csr 23 and DTS sound (using -c:a copy), I then concat them using -f concat with a file list. The result is that the transition between segments cause a small "lag" of about 0.25 second.
[12:57:55 CEST] <cowai> Is there any obvious faults I did here?
[12:58:29 CEST] <cowai> I did not specify keyframe interval in the encodes it self, maybe I need to do that?
[13:11:46 CEST] <BtbN> cowai, you have to make sure you only split at keyframes.
[13:11:59 CEST] <BtbN> Otherwise everything before the next keyframe will be lost at the beginning of a segment
[13:12:00 CEST] <furq> won't -f segment do that automatically
[13:12:09 CEST] <cowai> ah
[13:12:12 CEST] <BtbN> It should, but I wouldn't bet on it.
[13:12:13 CEST] <cowai> I thought it did.
[13:12:25 CEST] <furq> i'm pretty sure it does but there's no harm double checking
[13:12:37 CEST] <cowai> I tried to segment and then concat without reencoding now, and the lag is still there.
[13:12:48 CEST] <cowai> So I guess it doesnt segment by keyframes.
[13:12:55 CEST] <cowai> Thanks
[13:12:56 CEST] <BtbN> It might simply have no idea if there's a keyframe, after all the codecpar/coded_frame changes and everything
[13:13:25 CEST] <BtbN> you should open a bug with that
[13:13:30 CEST] <BtbN> That should not happen
[13:13:48 CEST] <cowai> I should try with latest static build
[13:13:51 CEST] <BtbN> Ideally including the sample.
[13:13:57 CEST] <cowai> Now I use a random ppa
[13:20:14 CEST] <furq> it looks like you have to enable -break_non_keyframes to get it to not break only on keyframes
[13:21:27 CEST] <cowai> Why do I want that?
[13:21:47 CEST] <furq> you don't wan thtat
[13:21:56 CEST] <furq> it's off by default so that shouldn't be the problem
[13:22:23 CEST] <cowai> Ah, yes get it now.
[13:22:40 CEST] <c_14> You could check with ffprobe to see if the first and last frames are keyframes
[13:23:12 CEST] <cowai> They should right?
[13:23:35 CEST] <c_14> They should, yes.
[13:25:50 CEST] <cowai> Actually, The last frame on segment 1 and first frame on segment 2 should be the same keyframe?
[13:28:40 CEST] <cowai> note: pts_time is not reset on segment 2
[13:29:20 CEST] <c_14> I don't think so, it should be the next frame encoded as a keyframe.
[13:30:22 CEST] <cowai> last frame on segment 1: "packet|pts_time=885.218000|flags=_"
[13:30:34 CEST] <cowai> first frame on segment 2: "packet|pts_time=885.385000|flags=K"
[13:31:01 CEST] <cowai> last frame on segment 1 is not a keyframe.
[13:34:01 CEST] <cowai> One weird thing is that pts_time=885.218000 on the original source is a keyframe, but in segment 1 its a regular frame
[13:34:25 CEST] <c_14> But you reencoded inbetwen, no?
[13:34:34 CEST] <cowai> no
[13:34:46 CEST] <cowai> only segmented
[13:35:16 CEST] <cowai> first frame in original source: "packet|pts_time=0.000000|flags=K", segment 1: "packet|pts_time=0.167000|flags=K"
[13:35:37 CEST] <cowai> The lag I see could be 0.16~s long
[13:35:56 CEST] <furq> https://trac.ffmpeg.org/ticket/4676
[13:36:01 CEST] <furq> i wonder if it's the same issue as this
[13:39:28 CEST] <cowai> I use dts sound and the container is mkv.
[13:39:33 CEST] <cowai> But could be.
[13:39:45 CEST] <furq> well that issue definitely affects other containers
[13:39:57 CEST] <BtbN> Might be related to audio frames.
[13:40:10 CEST] <furq> if the root cause is that ffmpeg doesn't properly handle overlapping timestamps then all sorts of stuff could go wrong
[13:40:32 CEST] <BtbN> But audio frames are too short to cause that long of a gap
[13:40:44 CEST] <cowai> I could test without audio
[13:41:00 CEST] <BtbN> or re-encode the audio to raw pcm first
[13:41:03 CEST] <furq> i might try and find something with dts audio to test with
[13:41:24 CEST] <furq> i just tested with h264+aac in ts and the audio is choppy at segment boundaries
[13:49:00 CEST] <cowai> I dropped the audio and now there is no gap.
[13:49:13 CEST] <cowai> But the pts_times around the split is exactly the same.
[13:50:32 CEST] <cowai> So clearly its the audio.
[13:50:39 CEST] <BtbN> timestamps might get re-written, unless you specify copyts
[13:51:41 CEST] <cowai> Maybe I should just do the audio separately
[13:52:08 CEST] <cowai> segment the video, reencode them, merge back together with the audio from source.
[13:52:43 CEST] <BtbN> that's very hard to get right
[13:52:59 CEST] <BtbN> you easily end up with out of sync a/v then
[13:53:28 CEST] <BtbN> It's a bug that should be fixed. please open a bug on trac and include the sample if possible.
[13:53:31 CEST] <cowai> as long as the total duration is the same, it should sync up, right?
[13:54:13 CEST] <bencoh> when segmenting video I'd only transcode video, not audio
[13:54:45 CEST] <cowai> bencoh, any special reason for that?
[13:55:05 CEST] <bencoh> audio frames of fixed length
[13:55:37 CEST] <bencoh> not sure what ffmpeg does, but you supposedly might end up with blank/silence at the end of the last audio frame of every segment
[13:55:43 CEST] <bencoh> which would explain choppy audio in furq test
[13:56:01 CEST] <BtbN> as it's filling up the audio frame?
[13:56:13 CEST] <furq> yeah that bug report mentions padding frames being inserted
[13:56:14 CEST] <bencoh> avcodec does fill it
[13:56:26 CEST] <cowai> I remember having to produce 1second segments and the audio couldnt conform to 1s in 60p.
[13:56:46 CEST] <cowai> so the 1.000s would be 1.033s
[13:56:52 CEST] <cowai> or something like that.
[13:56:56 CEST] <bencoh> I once wrote a live video recorder+segmenter (ie live to mp4 segments) and transcoded audio *before* segmenting
[13:57:06 CEST] <bencoh> meaning I'd always write complete audio frames
[13:57:21 CEST] <bencoh> (hence no inserted padding)
[13:57:23 CEST] <furq> i don't see how the audio would get out of sync if you only segmented the video
[13:57:51 CEST] <cowai> Is there any information in the containers about when the audio frames will start?
[13:58:13 CEST] <BtbN> usually audio is put in a container just like video. As frames.
[13:58:14 CEST] <cowai> So when we merge them back together they could start at the exact time and they should have a small offset?
[13:58:20 CEST] <BtbN> Each frame contains X samples, and has a timestamp
[14:03:19 CEST] <cowai> BtbN: What do you suggest I do?
[14:04:01 CEST] <cowai> Can I fix this by properly segmenting the files based on keyframe info of ffprobe for instance?
[14:04:14 CEST] <cowai> instead of relying on -f segment
[14:11:48 CEST] <ffxx> how to enable hw acc with ffplay? there is -vcodec
[14:12:52 CEST] <ffxx> ffplay -vcodec what_goes_here h264_video.mp4
[14:16:49 CEST] <BtbN> ffxx, use mpv instead.
[14:17:02 CEST] <BtbN> ffplay is not designed for hardware acceleration at all.
[14:17:22 CEST] <BtbN> Not that it does not work in some way, but mpv works better.
[14:21:31 CEST] <cowai> Scratch what I said, I still see a small gap in the picture without audio too.
[14:22:49 CEST] <furq> does it happen with different segment containers
[14:23:15 CEST] <BtbN> Yeah, what container are you trying to segment into? And have you tried mpegts yet?
[14:25:29 CEST] <cowai> mkv to mkv
[14:25:40 CEST] <BtbN> Try ts.
[14:25:50 CEST] <furq> yeah ts is probably a better choice for the segments
[14:26:00 CEST] <cowai> I will try, thanks
[14:26:13 CEST] <BtbN> .ts and .flv are the only formats that work fine for segmenting/concat from my experience.
[14:27:05 CEST] <cowai> I have concatted mkv many times before with success.
[14:27:25 CEST] <BtbN> concating them is probably fine, but cutting them in segments is not
[14:27:56 CEST] <cowai> hold on
[14:27:59 CEST] <BtbN> .ts and .flv are trivial enough that a simple cat command can successfully concat them to a valid file.
[14:28:17 CEST] <__jack__> (meaning: they are a lot of overhead)
[14:28:27 CEST] <__jack__> have*
[14:28:39 CEST] <bencoh> flv doesn't exactly sound like a great choice though :D
[14:28:45 CEST] <bencoh> but ... as long as it works ...
[14:28:52 CEST] <BtbN> The overhead of ts and flv is negligible
[14:29:07 CEST] <BtbN> And flv is a nice format, if the codecs it supports are enough for you.
[14:29:13 CEST] <furq> it should be negligible in this case at least
[14:29:15 CEST] <BtbN> It's simple and robust
[14:29:24 CEST] <BtbN> The overhead of mpegts is not that bad at all
[14:29:41 CEST] <furq> i've seen mpegts files with >3GB of overhead compared to mkv
[14:29:59 CEST] <BtbN> That must have been very huge video then
[14:30:02 CEST] <BtbN> or very long
[14:30:08 CEST] <furq> it was off a blu-ray
[14:30:20 CEST] <bencoh> it also depends on how you mux it actually
[14:30:23 CEST] <BtbN> Then it was also with error-correction data.
[14:30:34 CEST] <BtbN> a simple remux to ts would have shrinked it probably
[14:31:49 CEST] <furq> i tested mp4 and ts segments a while ago and ts is about 8% bigger every time
[14:32:04 CEST] <furq> it's not a big deal though really
[14:32:08 CEST] <__jack__> 10% overhead on a simple sd-serie (200MB) for ts, for almost 0% with mkv
[14:32:17 CEST] <furq> they're only intermediate files
[14:32:28 CEST] <__jack__> mkv: 193MB, ts: 214MB (same content, streams copied)
[14:32:49 CEST] <furq> the m2ts i remuxed was 30GB, so 3GB was about what i expected really
[14:32:50 CEST] <__jack__> to me, that's "a lot of overhead", but indeed, it may be negligeable
[14:33:21 CEST] <furq> it's not worth worrying about for intermediate files
[14:33:41 CEST] <BtbN> mpeg-ts is designed for streaming
[14:33:45 CEST] <furq> ^
[14:33:46 CEST] <BtbN> so it contains a lot of redundancy
[14:34:07 CEST] <BtbN> which makes it very resilient against pretty much anything
[14:34:13 CEST] <furq> yeah that's desirable for this use case
[14:34:55 CEST] <furq> i would also generally expect segmenting to ts to be a more well-trodden code path
[14:35:01 CEST] <bencoh> well extradata at the begining would be enough for this usecase, but ... meh :)
[14:35:26 CEST] <bencoh> furq: I wouldn't bet on that
[14:35:41 CEST] <bencoh> especially for the merge part
[14:36:14 CEST] <furq> i just mean for segmenting
[14:36:22 CEST] <furq> segmenting to ts has got to be much more popular than segmenting to mkv
[14:36:53 CEST] <bencoh> ah, maybe ... but then again people segmenting to ts usually do it with hls in mind
[14:36:56 CEST] <furq> especially if there's code shared with the hls muxer
[14:37:00 CEST] <bencoh> meaning they target iStuff
[14:37:27 CEST] <bencoh> which is possibly one of the worst TS player spec-wise :p
[14:38:02 CEST] <bencoh> your timestamps might be completely fucked up and you wouldn't notice it
[14:38:32 CEST] <BtbN> segmenting to mp4 also works quite well now.
[14:38:48 CEST] <BtbN> Because as stupid as it is, it's a common usecase thanks to Browsers being trash
[14:40:22 CEST] <cowai> The segments are about 15minutes each. The mkv is 2.8GB, and the ts is 3.5GB.
[14:40:27 CEST] <cowai> So huge overhead.
[14:40:46 CEST] <BtbN> We should add mpi support to ffmpeg.
[14:44:06 CEST] <cowai> TS gives me the save gap.
[14:45:16 CEST] <cowai> Just to be sure. Here is my command for segmenting: "ffmpeg -hide_banner -loglevel error -i source.mkv -c copy -copyts -segment_time 885 -f segment segments_%03d.ts"
[14:45:55 CEST] <bencoh> 15:21 < cowai> Scratch what I said, I still see a small gap in the picture without audio too.
[14:45:57 CEST] <furq> does it work without -copyts
[14:46:02 CEST] <bencoh> what did you mean by that?
[14:46:23 CEST] <cowai> I tried both with and without audio in the segments
[14:46:41 CEST] <cowai> Both times, the concated result had a slight gap in the picture.
[14:46:49 CEST] <bencoh> what's a gap in the picture?
[14:47:03 CEST] <cowai> lag,
[14:47:26 CEST] <cowai> complete freeze of the picture for about 0.1s
[14:47:29 CEST] <bencoh> ah
[14:47:38 CEST] <cowai> right at the transition between the segments
[14:48:06 CEST] <bencoh> late pictures that eventually get dropped and/or trickplayed to catch with actual framerate?
[14:48:29 CEST] <cowai> I am not sure, there is no errors with ffplay.
[14:48:42 CEST] <cowai> It just looks like I hit pause
[14:48:49 CEST] <bencoh> what about vlc/mpv?
[14:50:36 CEST] <cowai> vlc: 2-3 seconds before the gap:
[14:50:36 CEST] <cowai> "core warning: playback way too early (-137311): playing silencecore debug: inserting 6590 zeroes"
[14:50:42 CEST] <cowai> There we have it.
[14:52:16 CEST] <BtbN> so the audio frame in the first segment is too long, and overlaps into the second one. And in the second segment, the timestamp get fixed up to start in parallel with the video, and when concating that, it messes up?
[14:52:53 CEST] <bencoh> could be yeah
[14:53:21 CEST] <BtbN> dts might not be the ideal format for split/concat, hm
[14:54:08 CEST] <bencoh> ?
[14:54:24 CEST] <BtbN> Never had that happen with aac
[14:54:51 CEST] <cowai> BtbN: if the audio frame is too long, and that is why the gap is visible in the concatted result, why is gap also visible in the non-audio version of the experiment?
[14:59:02 CEST] <bencoh> no audio means ... no audio at all?
[14:59:26 CEST] <cowai> -an
[14:59:36 CEST] <bencoh> even in segments?
[15:00:03 CEST] <cowai> I meant that I have tested with both segmenting with audio and without.
[15:00:29 CEST] <cowai> When I concat, the end result still has gaps around the time the segments have been merged.
[15:09:34 CEST] <cowai> Alright I think I fixed the whole thing. setting -segment_time_delta 3 made it not having any gap at all.
[15:11:56 CEST] <cowai> I think I will try to set -segment_time_delta to a really high number to let it adjust in all scenarios.
[15:13:25 CEST] <BtbN> Please report that bug.
[15:15:17 CEST] <cowai> I am not sure its a bug?
[15:16:31 CEST] <cowai> what is the point of -segment_time_delta if not for this ?
[15:16:41 CEST] <cowai> default for -segment_time_delta is 0.
[15:17:57 CEST] <BtbN> It should not produce broken output, even with it being set to 0.
[19:48:45 CEST] <teratorn> what filtergraph fragment is the -loop 1 ffmpeg cmd-line option equal to? :)
[19:49:40 CEST] <teratorn> e.g. if I need to loop a static frame (.png) at a given fps, do I use -loop or a loop filter? or a loop+fps filter? or?
[19:50:10 CEST] <furq> use -loop for images
[19:50:30 CEST] <furq> -loop and -framerate before -i
[19:50:31 CEST] <teratorn> and -frame_rate to set an explicit fps?
[19:50:38 CEST] <teratorn> right, ok
[19:50:58 CEST] <furq> actually if it's a single image then don't use -framerate
[19:51:00 CEST] <furq> use -r after -i
[19:51:41 CEST] <teratorn> well
[19:51:51 CEST] <teratorn> it has to loop for a specific amount of time
[19:52:06 CEST] <teratorn> and is concat'd with other streams
[19:52:22 CEST] <furq> if it needs to be the same length as an audio track then just use -shortest
[19:52:44 CEST] <teratorn> I was going to calculate the number of frames needed ahead of time, and try to do it with the loop filter
[19:52:51 CEST] <teratorn> and a setpts
[19:52:57 CEST] <teratorn> to achieve the right framerate
[19:53:17 CEST] <furq> you can probably use -framerate before -i with a single image as well
[19:53:23 CEST] <furq> i've never tried but i imagine that would work
[19:53:37 CEST] <teratorn> random google results suggest you can
[19:56:52 CEST] <teratorn> ok I can just use the -framerate and -loop 1 options before the -i, and use a trim filter in the graph to get as much time as I want
[19:57:07 CEST] <teratorn> this should work! ;)
[19:57:13 CEST] <teratorn> freaking <3 ffmpeg
[19:59:25 CEST] <teratorn> so, can I achieve the same thing entire within -filter_complex?
[19:59:29 CEST] <furq> probably
[19:59:31 CEST] <teratorn> *entirely
[19:59:43 CEST] <furq> image2's -loop doesn't map directly to a filter
[19:59:51 CEST] <furq> or at least my inept reading of the code suggests it doesn't
[20:00:05 CEST] <teratorn> well
[20:00:06 CEST] <furq> but there's no reason to use -framerate over -vf fps afaik
[20:00:29 CEST] <teratorn> my understanding was that the fps filter looks at existing timestamps
[20:01:01 CEST] <teratorn> if you just use a loop filter on a source that comes from a single static frame, with an assumed pts of 0 I guess, how can it possibly infer what to d?
[20:01:11 CEST] <teratorn> hmm
[20:01:29 CEST] <teratorn> maybe I'm over-thinking it
[20:01:49 CEST] <teratorn> hey I know, I'll just try it
[20:02:25 CEST] <furq> well -loop -i foo.png just spits out a 25fps video by default, so presumably it generates pts
[20:02:38 CEST] <furq> -loop 1 -i foo.png, rather
[20:02:42 CEST] <teratorn> e.g. what time does the loop filter set the pts values to when it does not have a display duration for the single input frame? does it assume one from a default fps?
[20:02:43 CEST] <furq> no idea how the loop filter handles that case
[20:04:02 CEST] <teratorn> well it does work somehow, because I do use the loop filter to loop a single frame that was trimmed out of a real video. just one frame. and it does loop it @fps without any explicit fps filter
[20:04:30 CEST] <furq> yeah i just checked, it defaults to 25fps
[20:05:27 CEST] <teratorn> yeah, I shouldn't be scared of reading sources. I've answered many ffmpeg questions that way :)
[20:05:42 CEST] <furq> well by "checked" i mean i ran it
[20:07:43 CEST] <teratorn> ffmpeg -i preroll1.png -vf fps=29.97,loop=9999:start=0:size=1,trim=start=0:end=1.0 out.mp4
[20:07:56 CEST] <teratorn> works for me ;)
[20:08:14 CEST] <teratorn> i don't like having to use loop=9999 though
[20:08:42 CEST] <teratorn> since I think ffmpeg has to actually process through all of them
[20:11:32 CEST] <teratorn> or maybe not... using huge values does not appear to slow anything down
[20:25:29 CEST] <teratorn> how do I plot a graph of immediate fps?
[20:25:45 CEST] <teratorn> just to sanity check files?
[20:27:59 CEST] <DHE> shenanigans with ffprobe -show_frames is the only thing I can think of
[20:55:31 CEST] <teratorn> [Parsed_concat_14 @ 0x1b1e120] Input link in1:v0 parameters (size 1280x720, SAR 1:1) do not match the corresponding output link in0:v0 parameters (1280x720, SAR 2835:2835)
[20:55:49 CEST] <teratorn> wat
[21:00:13 CEST] <furq> nice
[21:00:23 CEST] <furq> i guess you need an explicit setsar in there
[21:03:32 CEST] <teratorn> yeah, was about to try it... kinda dumb that they are equivalent SARs though
[21:09:18 CEST] <cowai> Is it normal that coded_picture_number with ffprobe is not always sorted and increasing?
[21:09:29 CEST] <cowai> Sometimes the next frame has a lower coded_picture_number
[21:09:34 CEST] <cowai> Only sometimes.
[21:11:25 CEST] <cowai> scratch that. I was thinking that was the index of the frame.
[22:22:40 CEST] <SouLShocK> are there any win32/64 builds with either libssh or libsmbclient enabled?
[22:28:12 CEST] <BtbN> Why do you need libsmbclient on windows?
[22:29:30 CEST] <BtbN> Doesn't just opening \\1.2.3.4\something\bla.ts just work natively?
[22:30:20 CEST] <furq> it does
[22:33:54 CEST] <SouLShocK> I wanted to see if I could get around the horrible performance from Windows' own smb drivers
[22:35:54 CEST] <BtbN> that's not a driver thing. Just SMB.
[22:36:25 CEST] <SouLShocK> well the Ubuntu samba driver is a lot faster than the windows samba driveur
[22:36:42 CEST] <SouLShocK> up to 15x faster
[22:37:05 CEST] <BtbN> For what usecase? Windows easily uses up my gigabit LAN here.
[22:37:26 CEST] <SouLShocK> using a samba share as destination for ffmpeg
[22:38:10 CEST] <SouLShocK> copying files is fast enough, sure. but when writing the ffmpeg output to \\server\share\file.mp4 ubuntu is many times faster than windows
[22:38:39 CEST] <SouLShocK> yet writing to c:\temp\file.mp4 is same speed as writing to the samba share in ubuntu
[22:39:13 CEST] <maziar> how to change mp4 bitrate with ffmpeg ?
[22:43:58 CEST] <SouLShocK> I was thinking of using sftp instead, since the files are going to be uploaded to akamai through sftp anyway. so might as well do it while encoding and save the time spent
[22:45:07 CEST] <furq> sftp will be much slower
[22:45:22 CEST] <BtbN> output to a network device will just slow down encoding immensely
[22:45:53 CEST] <SouLShocK> why would a network device be slower?
[22:46:03 CEST] <BtbN> because there's a network involved.
[22:46:17 CEST] <BtbN> Which is slightly slower and has a higher latency than a local disk that's also cached.
[22:47:03 CEST] <SouLShocK> copying the file to the network storage after transcoding is finished takes X seconds also
[22:47:28 CEST] <furq> use plain ftp if you can
[22:47:30 CEST] <SouLShocK> you're saying that copying after encoding would be, in most cases, faster?
[22:47:33 CEST] <furq> (over sftp, not smb)
[22:47:50 CEST] <furq> anything that goes through ssh has awful throughput
[22:48:14 CEST] <furq> also ftp is built in
[22:49:07 CEST] <BtbN> SouLShocK, not neccesarily for the same file. But in total, yes, definitely.
[22:49:22 CEST] <furq> it might not be the best idea with mp4 though
[22:49:35 CEST] <BtbN> as ffmpeg is single threaded, a slow output will slow everything else down as well
[22:49:40 CEST] <furq> you need seekable output for mp4 and there's a big disclaimer in the manual saying it's not recommended to rely on that working properly
[22:49:51 CEST] <furq> and i don't see the option at all for sftp
[22:50:40 CEST] <SouLShocK> yeah ffmpeg says mp4 over ftp is not possible
[22:51:32 CEST] <SouLShocK> [mp4 @ 0x40add80] muxer does not support non seekable output
[22:52:11 CEST] <SouLShocK> well I can build it to do the encoding to local harddisk and then ftp it over
[23:19:23 CEST] <ericwooley> When I stream video from a device, I get data as it happens, if I use pipe1 from a file, i get it as fast as it reads. is there any way to limit it to real time speed? I am trying to use a video file for testing
[23:19:46 CEST] <ericwooley> or i guess limit it to the fps of the file?
[23:20:04 CEST] <furq> ericwooley: -re before -i
[23:20:16 CEST] <ericwooley> furq to the rescue again
[23:20:22 CEST] <ericwooley> thanks you!
[23:26:51 CEST] <TwinTailed> furq: you're good with libav?
[23:27:49 CEST] <ericwooley> furq: I am running `ffmpeg -re -i ../video-samples/file.mpeg -f mp3 pipe:1` and `ffmpeg -re -i ../video-samples/file.mpeg -f mpeg1video pipe:1` and collecting the output into buffers. Then sending both buffers somewhere else, and hitting play. This works with streams from avfoundation, but doesn't seem to work in when reading the mpeg file. Any ideas as to what might be happening differently?
[23:28:22 CEST] <ericwooley> the video buffer has way more of the video in it
[23:30:47 CEST] <ericwooley> Actually I might be really dumb and forgot to restart the process collecting the bufferes
[23:37:26 CEST] <ericwooley> yep, I was just dumb, thanks again
[23:48:32 CEST] <TwinTailed> There is a real mystery here in #ffmpeg... FFMPEG experts suddenly disappear leaving no trace in the middle of the conversation between you and them. I always imagine them typing then their wives tell them "Honey leave the PC and lets have sex", so they leave you with half an answer.
[00:00:00 CEST] --- Mon Oct 10 2016
1
0
[05:38:34 CEST] <philipl> BtbN: one awkwardness with the new code. I'm not using av_hwdevice_ctx_create because I want to use a different mechanism to get the cuda device (There's a GL interop method to get the device that matches the current GL context)
[05:38:54 CEST] <philipl> This means I can't populate the cuda functions.
[05:39:39 CEST] <philipl> I put in a quick hack to populate them in cuvid_decode_init in my tree.
[05:42:54 CEST] <philipl> https://github.com/philipl/FFmpeg/commit/94af983a53d5c68e8036193f1d47514c26…
[11:39:27 CEST] <cone-793> ffmpeg 03Anton Khirnov 07master:398f015f077c: avconv: buffer the packets written while the muxer is not initialized
[11:39:27 CEST] <cone-793> ffmpeg 03Hendrik Leppkes 07master:3e5e5bdfef07: Merge commit '398f015f077c6a2406deffd9e37ff34b9c7bb3bc'
[11:39:57 CEST] <nevcairiel> the next commit starts the hard part, it appears :(
[13:23:01 CEST] <BtbN> philipl, wouldn't the much more sane solution for that be adding that check to av_hwdevice_ctx_init? You still have to be calling that.
[13:34:10 CEST] <BtbN> philipl, added that to my master on github.
[15:35:06 CEST] <atomnuker> what the honest fuck
[15:35:08 CEST] <atomnuker> cglobal aac_quantize_bands, 8, 8, 8, out, in, scaled, size, Q34, is_signed, maxval, rounding
[15:35:15 CEST] <atomnuker> Q34 is a random small float value
[15:35:34 CEST] <atomnuker> why in the living fuck am I never getting anything but 0 there
[15:35:49 CEST] <atomnuker> if I mov Q34m, 0x3ff00000 everything works correctly
[15:35:50 CEST] <nevcairiel> float isnt supported in params
[15:36:00 CEST] <atomnuker> FUCK
[15:36:15 CEST] <nevcairiel> because float passing is too crazy in various calling conventions
[15:38:15 CEST] <atomnuker> then what kind of a fucked up magic does the af_volume assembly do
[15:38:33 CEST] <atomnuker> it completely omits the volume argument in UNIX64
[15:38:52 CEST] <atomnuker> and somehow that value gets magically splat'd onto a register
[15:39:10 CEST] <nevcairiel> af_volume seems to use only ints from what i can tell
[15:40:15 CEST] <nevcairiel> and the assembly looks fine
[15:40:30 CEST] <nevcairiel> it loads 4 arguments into regs
[15:41:35 CEST] <nevcairiel> and uses pshuf(d|lw) to splat the volume value
[15:45:04 CEST] <nevcairiel> jamrial: you know these qsv things we skipped .. further avconv changes kinda make those required for the qsv hwaccel to keep working, because it gets rid of the manual hackery for transcoding-hwaccels and integrates them properly :(
[15:45:33 CEST] <nevcairiel> (on that note, ffmpeg_cuvid.c will also need updating for that)
[16:09:17 CEST] <BtbN> nevcairiel, what changed? The code left in there is fairly minimal by now.
[16:09:53 CEST] <nevcairiel> cuvid_transcode_init goes away and it gets all handled in cuvid_init, or so it looks from the qsv thigns libav changed
[16:09:58 CEST] <nevcairiel> so mostly just moving a bit
[16:15:23 CEST] <philipl> BtbN: yes. it was late when i did that. you put it in the sane place.
[17:01:17 CEST] <jamrial> nevcairiel: gets we should ping Ivan Uskov then
[17:03:54 CEST] <jamrial> s/gets/guess
[17:04:03 CEST] <jamrial> he's the qsv maintainer
[17:04:19 CEST] <jamrial> he probably missed my reply the other day
[17:12:24 CEST] <nevcairiel> yeah, although i dont expect any sort of swift action
[17:33:43 CEST] <atomnuker> rcombs: AAC encoder SIMD on the ML
[17:34:09 CEST] <rcombs> hype
[17:35:01 CEST] <rcombs> patch 1/2 missing?
[17:35:55 CEST] <atomnuker> ML being slow, it's a patch to use the decoder's lcg PRNG
[17:37:52 CEST] <nevcairiel> 12% overall is quite decent for two small things
[17:37:59 CEST] <rcombs> indeed, nice
[17:38:57 CEST] <nevcairiel> not sure all compilers we use like the inline arrays there though
[17:40:19 CEST] <nevcairiel> and with like two lines extra you could make quant 32-bit compatible :)
[17:44:14 CEST] <atomnuker> how, I have 8 arguments, I could probably merge some in the wrapper function but I'm not too keen on that
[17:44:23 CEST] <nevcairiel> nah
[17:44:27 CEST] <nevcairiel> i'll put it on the ML
[17:46:34 CEST] <nevcairiel> basically you can just declare one less argument to be loaded automatically, and handle it yourself, thus saving a reg
[17:46:51 CEST] <nevcairiel> but i'll put some example code on the ML in a few minutes
[17:49:06 CEST] <rcombs> lol32bit
[17:49:25 CEST] <rcombs> (I do care a little bit though)
[17:49:47 CEST] <rcombs> 😭
[18:15:13 CEST] <jamrial> atomnuker: you can pass floats to assembly functions
[18:15:45 CEST] <jamrial> it simply depends on the arch/os. x86_32, win64 and unix64 all do it differently
[18:16:11 CEST] <rcombs> doesn't even cost a gpr
[18:16:50 CEST] <jamrial> atomnuker: take a look at for example libavutil/x86/float_dsp.asm
[18:17:44 CEST] <jamrial> the scalar functions
[18:17:52 CEST] <atomnuker> yeah, I looked at ff_vector_fmul_scalar and I couldn't figure out what happens in the UNIX64 case
[18:18:33 CEST] <atomnuker> how does the mul get to m0 in that case?
[18:18:45 CEST] <Gramner> atomnuker: see my ML reply
[18:25:57 CEST] <jamrial> ml is being slow for real. Gramner's reply is still nowhere to be seen
[18:37:30 CEST] <nevcairiel> if you follow that path, it would also fix the 32-bit path as well
[18:37:45 CEST] <nevcairiel> since float stuff is loaded from stack then
[18:38:06 CEST] <nevcairiel> (i was eating in between, hence no mail yet)
[18:38:36 CEST] <ubitux> speaking of the ml; is there anyone moderating the queue of unregistered users?
[18:40:28 CEST] <nevcairiel> atomnuker: unix64 passes floats in xmm0-7, so it showing up in tehre is by design, fwiw
[18:42:34 CEST] <nevcairiel> win64 on the other hand always only passes 4 arguments in regs, and if those 4 are ints then even any following floats are passed through the stack, and not regs
[18:47:47 CEST] <atomnuker> so if I had 2 float args they would get passed in xmm0 and xmm1 in the unix64 case?
[18:47:54 CEST] <nevcairiel> yes
[18:47:55 CEST] <atomnuker> what about the unix32 case?
[18:48:11 CEST] <nevcairiel> you would want to move them last so they get passed through the stack
[18:49:23 CEST] <nevcairiel> cdecl probably passes all args on the stack
[18:49:51 CEST] <nevcairiel> so by having them last you can avoid x86inc messing with them and manually load them
[19:12:30 CEST] <philipl> BtbN: so the init thing works fine
[19:27:10 CEST] <atomnuker> nevcairiel: I still can't use the last register in 32 bit windows, right?
[19:29:40 CEST] <nevcairiel> last register?
[19:29:51 CEST] <nevcairiel> 32-bit windows isnt that special, it should be the same as unix32
[19:29:58 CEST] <atomnuker> r7
[19:30:38 CEST] <atomnuker> so I can't just do "cglobal aac_quantize_bands, 8, 8, 7, out, in, scaled, size, is_signed, maxval, Q34, rounding"
[19:30:47 CEST] <atomnuker> in the case of !UNIX64
[19:31:02 CEST] <Gramner> you can't use r7 on 32-bit, no
[19:31:03 CEST] <nevcairiel> you probably shouldnt do that anyway
[19:31:16 CEST] <nevcairiel> but manually load the float from the stack directly into xmm regs
[19:32:19 CEST] <nevcairiel> so you dont need the last 3 regs
[19:32:45 CEST] <atomnuker> any example where that happens?
[19:33:02 CEST] <nevcairiel> Gramner's mail on the ML ? :)
[19:33:34 CEST] <nevcairiel> vector_fmul_scalar basically does that, but with more special cases for win64, which you wouldnt even need
[19:34:49 CEST] <nevcairiel> (because in that function the float is in the first 4 args, so it get spassed through regs on win64)
[19:35:25 CEST] <atomnuker> oh, ok
[19:37:52 CEST] <nevcairiel> i wonder how other projects deal with the different calling conventions, especially when mixing floats and ints, must be annoying everywhere
[19:39:37 CEST] <Gramner> atomnuker: also in the quantize function, you can remove the float_sign_mask and do "and is_signedd, 0x80000000" instead.
[19:44:37 CEST] <atomnuker> after shifting by 31 bits?
[19:46:02 CEST] <Gramner> yes. in the loop you just and them together anyway, might as well do it outside the loop
[19:46:53 CEST] <Gramner> oh, and s/pand/andps/ since this is SSE
[19:47:16 CEST] <atomnuker> actually it's pointless anyway
[19:47:28 CEST] <atomnuker> that mask is only to get the sign of the in[] floats
[19:47:42 CEST] <atomnuker> which is going to be in the same place as the shifted is_signed
[19:48:10 CEST] <Gramner> oh, duh. Im dumb
[19:48:45 CEST] <Gramner> yes. just remove the float_sign_mask stuff
[19:50:38 CEST] <atomnuker> sent a v2 to the ML, works on 64 and 32 bit unix
[19:51:04 CEST] <atomnuker> (but before I removed the float_sign_mask :/)
[19:52:22 CEST] <Gramner> cvtsi2ss works on memory args as well, so no need to move maxval to a gpr first
[19:52:55 CEST] <Gramner> also I realized cvttps2dq is sse2, so you need to bump it up to that
[19:55:28 CEST] <Gramner> actually doesn't x86inc warn about using cpuflag_X in a cpuflag_X+N function?
[19:56:14 CEST] <Gramner> or well, the other way around
[19:57:23 CEST] <atomnuker> I don't have any warnings
[20:04:36 CEST] <Gramner> I get this: http://pastebin.com/cjABEA6e
[20:07:47 CEST] <Gramner> ! doesn't work for negation in yasm
[21:28:44 CEST] <atomnuker> figures, I'm using nasm
[00:00:00 CEST] --- Sun Oct 9 2016
1
0
[01:39:25 CEST] <CorvusCorax> Hi. I have a question regarding creation of video timestamps. I'm writing a program that creates a timestamp at the same time it sends a trigger signal to a camera. Then it retrieves a frame from the camera. Currently both timestamps and frames are stored separately in individual files (per frame), but that's not performant enough. I want to stream this raw video data to ffmpeg for encoding in a
[01:39:25 CEST] <CorvusCorax> suitable container. But how do I get the timestamps into ffmpeg?
[01:44:05 CEST] <klaxa> this might be a long shot, but i think at least matroska supports a generic data track
[01:44:12 CEST] <klaxa> not sure if this can be interleaved
[01:44:21 CEST] <klaxa> i wouldn't be surprised though
[01:45:43 CEST] <CorvusCorax> that's not really it though. I don't want that as generic auxilliary data (though that might be a cool thing for other data, so thanks for the suggestion :) ) but to be used for the actual frame timestamps in the video file
[01:47:23 CEST] <CorvusCorax> aka if the trigger signals to the camera were 12 ms apart, then the frame timestamps in the resulting stream should be 12ms apart. even if due to system lag, I have to feed the raw image data to ffmpeg with different timing. I can't have ffmpeg make its own timestamps based on fixed framerate or system time, since neither would be accurate
[01:47:30 CEST] <c_14> If you're using the libraries, you can magic up a timestamp using your input and the appropriate functions. If you're using the binary, set the mtime on the images using the timestamps and use the -ts_from_file option of the image2 demuxer
[01:49:17 CEST] <CorvusCorax> thanks c_14, that might be an option. So I could either save them temporarily in image files in a ramdisk, and have ffmpeg read them from there, or call the encoder in libavcodec directly with home-brew timestamp info
[01:49:20 CEST] <CorvusCorax> ?
[01:56:57 CEST] <klaxa> haven't heard of that yet
[01:57:38 CEST] <klaxa> you could look at doc/examples/remuxing.c
[01:57:48 CEST] <klaxa> it helped me understand remuxing a lot better
[01:57:59 CEST] <klaxa> if you really want to go down the rabbit hole
[01:58:10 CEST] <klaxa> although it might actually only need slight adjustions
[01:58:24 CEST] <klaxa> maybe there is a variable fps filter i don't know of
[02:06:25 CEST] <CorvusCorax> that looks quite promising actually. All I#d have to do is override pkt.pts for the output stream. The trickier thing might be to form pkt from raw rgb data, but that should be in another example
[02:09:11 CEST] <CorvusCorax> https://ffmpeg.org/doxygen/trunk/muxing_8c_source.html <-- I guess that would be it :-)
[02:09:31 CEST] <CorvusCorax> thanks klaxa :-)
[02:14:22 CEST] <CorvusCorax> this is an awesome chat room! :-) thanks @all, all my problems solved :)
[06:35:29 CEST] <yong> Is there a rule of thumb as to when re-encoding looks worse than immediate encoding with a higher qp? For example, lossless -> qp 24 -> qp 27 vs lossless -> qp 29, which one should look better?
[06:40:03 CEST] <klaxa> that's a good question, if you are talking about the same codec, it may be so that the artefacts "overlap" with the new artifacts and little additional quailty is lost, it could also be that many bits are spent on those artifacts to reproduce them and other areas lose quality
[06:40:09 CEST] <klaxa> that's just speculation though
[06:40:35 CEST] <klaxa> i would test with a series of videos/short clips ?
[06:40:40 CEST] <klaxa> if you are really interested
[06:43:29 CEST] <yong> klaxa: It's not only the same codec, it's the same encoder ;) (x264) yeah, maybe I should test it, but even testing for one specific case is kind of annoying, and that still doesn't give me a general rule ;)
[06:44:12 CEST] <klaxa> that's why i said "with a series" :)
[06:54:25 CEST] <yong> klaxa: lol, when re-encoding my sample -preset veryfast produces a smaller file than -preset slow - wtf?
[06:55:12 CEST] <klaxa> might be exactly what i described :D
[06:55:17 CEST] <klaxa> both cases even
[06:55:33 CEST] <klaxa> just that quality doesn't get degraded, but bits get added
[06:57:19 CEST] <yong> klaxa: The thing is, I didn't do the re-encoding test yet. I was just comparing sizes from lossless -> qp 31 once with veryfast and once with slow, this makes no sense to me. Maybe 10 seconds isn't a long enough sample, but still, I'd always expect slow to be smaller. Also medium seems to be right in the middle, exactly the opposite of what I'd expect
[06:57:56 CEST] <klaxa> ah, look at the files and how they look visually
[06:59:46 CEST] <klaxa> i bet even though you set -qp to 31 they look different (fast being worst up to slow)
[06:59:57 CEST] <klaxa> afk, getting some food :)
[07:00:18 CEST] <yong> klaxa: Slow seems to be looking the best (it's the largest file after all), but isn't -qp 31 supposed to mean that they should all look almost the same?
[07:00:54 CEST] <klaxa> not too sure about that, i think it also depends on the preset
[07:01:18 CEST] <klaxa> maybe -crf is the better choice?
[07:01:28 CEST] <klaxa> i don't know, read up on those two and what the differences are
[07:04:14 CEST] <yong> klaxa: crf is just qp but it adjusts the qp value slightly depending on how the human eye tends to percieve scenes, so for testing things like these I tend to prefer a constant qp by setting it directly and not using crf
[07:15:17 CEST] <klaxa> ah
[08:54:37 CEST] <teratorn> is there any way to get a `split' filter, but with actually independant AVFrame containers? which would in theory prevent pts changes on frames in one of the split streams from affecting the pts values of frames in other split streams? I would still like to share and ref-count frame data, but not share timestamps... any way other than writing my own modified
[08:54:37 CEST] <teratorn> split filter? I know I can have the same input multiple times on the ffmpeg command-line to achieve the same effect, but that means decoding the media multipe times, plus the memory overhead of non-shared frame data... any clues? =)
[10:46:25 CEST] <fqtw> what does -g 250 -sc_threshold 1000000000 do?
[10:53:48 CEST] <furq> fqtw: it's probably supposed to forced fixed-size gops
[10:54:08 CEST] <furq> s/forced/force/
[11:16:03 CEST] <fqtw> furq: what would be the libffmpeg function that does the same?
[15:05:38 CEST] <n4zarh> hello there, I still have problem with encoding samples to pcm_mulaw :D
[15:09:36 CEST] <cuba_> is there any image format i can pipe into ffmpeg to encode to a video
[15:09:37 CEST] <n4zarh> not using command line, I have problem with my C++ code using ffmpeg (specifically avcodec)
[15:09:44 CEST] <cuba_> that holds a timestamp
[15:10:02 CEST] <cuba_> so timing will be correctly
[15:10:28 CEST] <furq> cuba_: if the timing is regular you can specify the input framerate
[15:10:42 CEST] <cuba_> furq: but what if it is slighty changing
[15:10:57 CEST] <cuba_> depending on camera lightning etc
[15:11:15 CEST] <furq> you can use -ts_from_file with the image2 demuxer
[15:11:25 CEST] <furq> i don't know if that works with image2pipe though
[15:11:48 CEST] <c_14> I would assume no because piped data doesn't have an mtime
[15:11:58 CEST] <cuba_> yes c_14 not really image2pipe
[15:12:15 CEST] <furq> if there's anything equivalent, rather
[15:14:45 CEST] <cuba_> so I guess best method would be to create a ts file and reencode it afterwards
[15:22:30 CEST] <n4zarh> okay, sorry for not being there for a while, but again: I have problem using avcodec_fill_audio_frame, it returns -22, avlog shows no error at all
[15:26:46 CEST] <realies> what would be a modern hardware config for optimal hardware accelerated ffmpeg encoding/transcoding awesomeness?
[15:28:08 CEST] <n4zarh> I am sure I have frame allocated with nb_samples, format and channel_layout set, I know what kind of data I'm putting into that function, but it just returns -22 every time and I am clueless why
[15:30:09 CEST] <furq> realies: a quadro, or lots of xeons
[15:31:05 CEST] <realies> furq, why quadro?
[15:31:12 CEST] <furq> nvenc is artificially restricted to two concurrent jobs on consumer cards
[15:31:31 CEST] <realies> and unrestricted on quadros?
[15:31:50 CEST] <furq> idk about unrestricted but you get more than two
[15:32:00 CEST] <furq> the docs on this are nonexistent
[15:32:25 CEST] <realies> wow
[15:32:48 CEST] <realies> any clues on why is this limited?
[15:33:01 CEST] <furq> so that you buy a quadro
[15:33:02 CEST] <realies> or is nvenc written by nvidia
[15:33:06 CEST] <furq> yeah
[15:33:08 CEST] <realies> meh
[15:33:15 CEST] <furq> nvenc is the asic block on nvidia cards
[15:33:27 CEST] <realies> I get you, I thought it's a software limitation
[15:34:04 CEST] <furq> i believe the consensus in here is to just buy a lot of xeons and use x264
[15:34:18 CEST] <furq> maybe nvenc stacks up better if you're doing hevc encoding though
[15:37:46 CEST] <realies> a quadro sounds like a better plan than multiple xeons
[15:38:28 CEST] <furq> well it depends what you're doing
[15:38:33 CEST] <furq> one i7 might be plenty
[15:39:22 CEST] <realies> just looking forward to upgrade a P4 that I'm using for cloud storage but recently started to transcode full-quality footage for web preview and the poor thing is not happy
[15:40:12 CEST] <furq> oh
[15:40:12 CEST] <realies> I was considering https://www.scan.co.uk/products/asrock-c2750d4i-intel-octa-core-avoton-c275…
[15:40:25 CEST] <furq> everything i mentioned is overkill then
[15:40:32 CEST] <realies> but I won't know for sure before I see/do some nvidia/cpu benches
[15:40:42 CEST] <furq> an old gtx750 or something will probably be fine
[15:41:03 CEST] <realies> what about gtx750 vs octacore cpu?
[15:41:04 CEST] <furq> you'll definitely want hwaccel with that cpu
[15:41:08 CEST] <realies> asic probably beats cpu
[15:41:08 CEST] <furq> that's an 8-core atom
[15:41:33 CEST] <realies> fair enough
[15:42:02 CEST] <furq> fwiw you can get quad core versions of those for a bit less money
[15:42:33 CEST] <furq> i know someone who's got one in his nas, they're pretty nice
[15:43:54 CEST] <realies> I know, but why go for less cores
[15:44:28 CEST] <realies> if you're running a file server, ffmpeg instances and what not
[15:45:43 CEST] <realies> MAXWELL GEN 2, Standard 4:2:0, 4:4:4 and H.264 lossless encoding, ~900 fps 2-pass encoding @ 720p
[15:45:46 CEST] <realies> woah
[15:46:05 CEST] <realies> that's way better than the current 14fps
[15:46:14 CEST] <realies> on ultrafast
[15:46:56 CEST] <furq> that's nice but it's a bit useless unless you get a quadro
[15:47:07 CEST] <furq> you're not going to be able to use more than 120fps of that
[15:47:23 CEST] <realies> why? I thought if you have a single instance it's just going to be fast
[15:47:39 CEST] <furq> for some reason i've got it in my head that you're doing realtime
[15:47:54 CEST] <realies> I might be :P
[15:47:57 CEST] <realies> if it's fast enough
[15:48:14 CEST] <realies> which it will be
[15:48:45 CEST] <furq> maxwell 1st gen (gtx7**) is probably good enough
[15:48:47 CEST] <furq> it's your money though
[15:49:49 CEST] <realies> i wounder how faster than the P4 would that 8 core atom go
[15:50:51 CEST] <realies> at least 10 times I guess
[15:51:06 CEST] <furq> i'd be surprised
[15:51:21 CEST] <realies> depends if the encoder is optimised for multithreading
[15:51:26 CEST] <furq> it is
[15:51:32 CEST] <furq> that's a 14W cpu though
[15:51:40 CEST] <realies> And way newer
[15:51:54 CEST] <furq> it's not in the same league as a desktop i5
[15:52:02 CEST] <realies> i'm talking pentium 4 :P
[15:52:14 CEST] <furq> it'll probably be faster, sure
[15:55:47 CEST] <furq> oh nvm that's a 20W part
[15:56:07 CEST] <furq> it is also a lot faster than any other atom
[15:56:14 CEST] <furq> i guess that's why they dropped the name then
[15:56:29 CEST] <realies> I wonder why are they not refreshing the line as this mobo is released some time ago
[15:57:27 CEST] <furq> apparently it's close to a core 2 quad in performance
[15:57:32 CEST] <furq> that's pretty good for 20W
[15:58:54 CEST] <furq> maybe hold off on buying a gpu until you've benchmarked that then
[15:59:11 CEST] <furq> you should easily be able to do 720p30 realtime with that
[15:59:30 CEST] <realies> yeah, although I sort of wanted to be able to do a few at a time
[16:00:40 CEST] <realies> hence the quadro idea
[16:01:10 CEST] <furq> intel have quicksync which is the same idea as nvenc
[16:01:18 CEST] <furq> it's not supported on that cpu though
[16:01:49 CEST] <furq> it's on the i3 but then you lose ecc support
[16:03:31 CEST] <furq> actually i forgot they added ecc support to the new i3s and pentium Gs
[16:03:49 CEST] <furq> i'm sure it'll be characteristically easy to find a board which lets you use it
[16:06:14 CEST] <realies> I doubt I can find a mobo with that many sata ports
[16:06:32 CEST] <realies> I assume the i3s and pentium Gs have integrated GPUs, hence the asic?
[16:06:51 CEST] <furq> yeah
[16:10:03 CEST] <furq> i've seen mini-itx boards for those cpus with 6xSATA
[16:12:20 CEST] <realies> what about 12x? :P
[16:12:59 CEST] <furq> you'll be lucky to get more than 8
[16:13:08 CEST] <furq> those avoton boards are the only mini-itx boards i've ever seen with more than 8
[16:13:14 CEST] <realies> same
[16:13:57 CEST] <furq> you could always add a raid card
[16:14:34 CEST] <furq> although you wouldn't be able to add an nvidia card then
[16:15:04 CEST] <realies> yus
[16:15:10 CEST] <realies> what about ffmpeg + cuda?
[16:15:22 CEST] <furq> cuda/opencl don't really do anything for h264
[16:15:41 CEST] <realies> ah
[16:16:00 CEST] <furq> there are some filters which use them, but they're no use for encoding
[16:24:18 CEST] <realies> apparently xeon-d is the successor of avoton
[16:29:19 CEST] <furq> that looks to be about twice as powerful
[16:35:22 CEST] <realies> which one are you looking at? most of them are 45W
[16:37:15 CEST] <deostroll> Hello, I want to crunch the length of a video to a determined length. Can we do this? This is basically timelapsing but with this specific constraint I just mentioned...
[16:38:32 CEST] <deostroll> Usually those videos don't have audio...
[16:38:34 CEST] <furq> realies: there are some 35W ones
[16:39:25 CEST] <furq> deostroll: https://ffmpeg.org/ffmpeg-filters.html#setpts_002c-asetpts
[16:42:09 CEST] <deostroll> furq, that doesn't have an argument for specifying an output length I want...
[16:43:17 CEST] <furq> -vf setpts=(outputlength/inputlength)*PTS
[16:43:28 CEST] <furq> you'll need to work out the input length separately
[17:48:59 CEST] <realies> any ideas of free web-based asset managers?
[18:56:18 CEST] <n4zarh> I guess I will ask again, maybe there will be someone to answer :) I have problem with filling audio frame for pcm_mulaw encoding, it always returns -22 and avlog does not show any error/warning
[18:56:52 CEST] <n4zarh> here's my code http://pastebin.com/ycTxME58 - problem appears on line 53, but it might be something before that point
[18:59:31 CEST] <n4zarh> I'm compiling the code with android NDK and JNI library; I am able to decode both video and audio without problem with my built ffmpeg libs
[21:20:33 CEST] <fahadash> in the -t switch can I instead of telling the duration tell the end time?
[21:21:11 CEST] <furq> use -to
[21:21:18 CEST] <fahadash> Thanks
[21:22:51 CEST] <fahadash> furq: Got this error: http://pastebin.com/ACLkrJAU
[21:23:27 CEST] <c_14> Just read the message and do what it tells you.
[21:24:04 CEST] <c_14> >>you are trying to apply an input option to an outp ut file or vice versa. Move this option before the file it belongs to.
[21:27:00 CEST] <someOne_> Hi everyone, I'm currently developping a mutimedia player based on ffmpeg libraries (livav*). I implemented the seek feature which works but since I don't/can't flush codec buffers, first frames decoded after seek are frames from the old position. I can't flush codec buffers because avcodec_flush_buffers uses a AVCodecContext structure and AVStream::codec has been marked as deprecated (and seems to be remove in trunk), generatin
[21:27:20 CEST] <someOne_> So my question is simple, what is the equivalent of this function/way to do this with a AVCodecParameters parameter ? I tried avcodec_parameters_to_context but it doesn't work. Any idea? Thx!
[21:33:30 CEST] <fahadash> c_14: Not sure what am I doing wrong, I am trying to clip a segment from an input file, it works fine if I use just -t <duration> but -to <end_time> gives me that error. Here is my full command http://pastebin.com/3rkxCuEs
[21:33:56 CEST] <c_14> -to is an output option, place it before the output file, not before the input file
[21:36:51 CEST] <fahadash> I am trying to create a timelapse of a segment, and -filter:v has hosed up my computer and seems to be taking too long
[21:40:39 CEST] <fahadash> looks like the -to didn't make it stop at the end_time I provided it continued after that
[21:41:52 CEST] <fahadash> ah, I better stick with -t and just compute the duration;
[00:00:00 CEST] --- Sun Oct 9 2016
1
0
[01:31:41 CEST] <cone-988> ffmpeg 03Rodger Combs 07master:1f7d5860525a: ffmpeg: don't reconfigure terminal if we're not taking input from stdin
[01:31:42 CEST] <cone-988> ffmpeg 03Rodger Combs 07master:021286720248: tests: add -nostdin flag when calling ffmpeg
[02:48:58 CEST] <crelloc> Hey everyone, i am working on writing a selftest to improve code coverage...When I add my own selftest program do I need to modify a Makefile to get my added selftest to compile??
[04:51:48 CEST] <philipl> BtbN: Doesn't work. They absolutely don't want you to access the raw backing memory for a GL texture. That's why you can't get a pointer directly from the mapped resource either.
[10:35:16 CEST] <BtbN> philipl, so you need to cuMemCpy anyway, don't you? Or what does using an Array in ffmpeg improve?
[12:45:44 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:04a357726378: ffmpeg: remove unused and errorneous AVFrame timestamp check
[12:48:42 CEST] <wm4> nevcairiel: so the plan is to follow Libav's change to use AVFrame.pts, right?
[12:48:48 CEST] <nevcairiel> yes
[12:48:54 CEST] <nevcairiel> i didnt see anyone clearly objecting
[12:48:54 CEST] <wm4> and pkt_pts will be deprecated?
[12:48:58 CEST] <nevcairiel> yes
[12:49:02 CEST] <wm4> but not pkt_dts?
[12:49:14 CEST] <nevcairiel> we dont have a replacement field for that, so no, the other pkt_* fields remain
[12:49:27 CEST] <nevcairiel> its only consolidating pkt_pts,pts into only pts
[12:50:09 CEST] <wm4> yeah
[13:04:40 CEST] <BtbN> A dts doesn't really make sense for non-packets anyway
[13:04:56 CEST] <BtbN> And I can't think of an immediate use of the former pkts dts when dealing with a decoded frame.
[13:05:47 CEST] <nevcairiel> that info isnt changing either way
[13:06:28 CEST] <wm4> BtbN: unfortunately, the dts is often useful in broken situations
[13:06:50 CEST] <cone-928> ffmpeg 03Anton Khirnov 07master:32c8359093d1: lavc: export the timestamps when decoding in AVFrame.pts
[13:06:51 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:3f9137c57d23: Merge commit '32c8359093d1ff4f45ed19518b449b3ac3769d27'
[13:06:54 CEST] <wm4> such as avi timestamps
[13:06:55 CEST] <BtbN> Also, I just noticed that vf_hwupload_cuda can probably be removed.
[13:07:02 CEST] <wm4> which live fourth in vfw-muxed mkv
[13:07:11 CEST] <BtbN> Updated it to the new API, and there is nothing CUDA specific left in there.
[13:07:22 CEST] <BtbN> So the generic hwupload should work
[13:07:49 CEST] <BtbN> hm, or not. the generic one is not that generic
[13:08:19 CEST] <wm4> wut
[13:08:28 CEST] <wm4> the generic one was designed to replace that, wasn't it
[13:09:00 CEST] <wm4> so, can I assume maintainership of mp3dec.c?
[13:09:42 CEST] <BtbN> wm4, it was, but it expects an externally supplied hwdevice_ctx
[13:09:53 CEST] <BtbN> Which the cuda one just creates itself
[13:09:56 CEST] <wm4> that's a given
[13:10:02 CEST] <wm4> how does that even work?
[13:10:13 CEST] <wm4> can cuda surfaces be passed to different cuda contexts?
[13:11:01 CEST] <BtbN> no
[13:11:11 CEST] <BtbN> but hwupload is the beginning of the chain
[13:11:18 CEST] <BtbN> that's where the cuda context initially comes from
[13:11:32 CEST] <BtbN> everything after that uses it
[13:12:31 CEST] <wm4> I'm not quite sure where you'd create the initial context in e.g. vaapi full-hw transcoding
[13:12:37 CEST] <wm4> but shouldn't it be similar?
[13:13:00 CEST] <jkqxz> Magically pulling a cuda context out of nowhere is not nice, though it makes ffmpeg (the utility) a bit simpler.
[13:13:32 CEST] <BtbN> wm4, in ffmpeg.c
[13:13:40 CEST] <BtbN> that's what ffmpeg_vaapi.c and ffmpeg_cuvid.c do
[13:13:54 CEST] <jkqxz> If you set the global hw_device_ctx somewhere there then the generic hwupload works (because every filter gets given that device).
[13:14:09 CEST] <BtbN> optionally cuvid.c can do it, if it doesn't get an external context, it just creates one
[13:14:34 CEST] <BtbN> jkqxz, yes, but by now we can just create the context in the generic upload
[13:14:39 CEST] <BtbN> if there is not a global one
[13:14:46 CEST] <jkqxz> This is horrible, though, because you can't use multiple devices. There was some thought in libav about how to make this better, but we haven't come up with a nice answer.
[13:15:09 CEST] <BtbN> of course you can?
[13:15:14 CEST] <jkqxz> Something like allowing multiple devices to be created on the command line and then parse the filter graph to put them in the right place in the filter chain, but it's all ugly.
[13:15:35 CEST] <jkqxz> You can't use multiple devices in the ffmpeg utility. It's fine if you just use lavfi.
[13:15:35 CEST] <BtbN> There is no point in having more than one global device anyway
[13:16:01 CEST] <BtbN> Per chain, that is.
[13:16:16 CEST] <BtbN> You need to use the same one, otherwise the later filters/encoders can't access the frames.
[13:16:29 CEST] <jkqxz> No. My vaapi <-> opencl interop stuff requires two devices because derived devices can't work for that case.
[13:16:30 CEST] <BtbN> https://gist.github.com/71e79155759c3c2274b8261c8972119e that's the changes I made to the cuda hwupload. It's essentialy generic now.
[13:17:00 CEST] <cone-928> ffmpeg 03Anton Khirnov 07master:beb62dac6296: Use AVFrame.pts instead of deprecated pkt_pts.
[13:17:01 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:6f74e3cde614: Merge commit 'beb62dac629603eb074a44c44389c230b5caac7c'
[13:17:46 CEST] <jkqxz> Ideally derived devices would work, and then you only need to supply the first one, but branching cases can still be hard.
[13:18:08 CEST] <BtbN> For CUDA, the CUdeviceptr is only valid for the context it was created in
[13:18:13 CEST] <BtbN> so there is no way to use more than one context
[13:18:24 CEST] <cone-928> ffmpeg 03Martin Storsjö 07master:dc7501e524dc: checkasm: Issue emms after benchmarking functions
[13:18:26 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:6fc74934de1f: Merge commit 'dc7501e524dc3270335749302c7aa449973625f3'
[13:18:36 CEST] <BtbN> You can of course have independend chains on multiple devices. Which is already perfectly possible.
[13:18:45 CEST] <BtbN> the hwupload_cuda has a parameter for the device to run on.
[13:19:15 CEST] <cone-928> ffmpeg 03Martin Storsjö 07master:8c3c7b892003: dxva2_h264: Remove an unused variable
[13:19:16 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:40b2878ad3bb: Merge commit '8c3c7b8920033d61c7aa15a4465b759c84e5958f'
[13:19:28 CEST] <jkqxz> Yes. And that's why hwupload_cuda magically creating devices is bad, because they aren't interoperable. If you have two input streams and you upload both of them, it doesn't work because they are not the same device.
[13:19:41 CEST] <cone-928> ffmpeg 03Mark Thompson 07master:11b8030309ee: vaapi_encode: Fix fallback when input does not match any format
[13:19:41 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:5e872d908368: Merge commit '11b8030309ee93d79b3a6cd4b83bf00757db1598'
[13:20:11 CEST] <jkqxz> *not the same context. (Device is unhelpfully overloaded there.)
[13:20:12 CEST] <cone-928> ffmpeg 03Mark Thompson 07master:fe498ef5144d: hwcontext_vaapi: Return all formats for constraints without config
[13:20:13 CEST] <cone-928> ffmpeg 03Luca Barbato 07master:4dbfcd07570a: librtmp: Avoid an infiniloop setting connection arguments
[13:20:14 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:e8487d71be4d: Merge commit 'fe498ef5144d3712b887f44a0c5e654add99ead7'
[13:20:15 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:8dd0e3d50f84: Merge commit '4dbfcd07570a9e45e9597561023adb6da26f27f6'
[13:20:27 CEST] <BtbN> There is no sane way to achive that though
[13:20:51 CEST] <jkqxz> ? Create the device outside lavfi.
[13:20:55 CEST] <BtbN> implicit context creation saves a lot of headaches.
[13:21:43 CEST] <wm4> if the format changes, lavfi will be reinitialized
[13:21:47 CEST] <wm4> then your context would die
[13:22:05 CEST] <BtbN> it will create a new one, but the old one will still exist
[13:22:09 CEST] <cone-928> ffmpeg 03Diego Biurrun 07master:3c84eaae9da0: h264: Eliminate unused but set variable
[13:22:10 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:da76175d6812: Merge commit '3c84eaae9da0dc450ae99c65bb6b9865e3ba7fad'
[13:22:11 CEST] <BtbN> until it's not in use anymore
[13:22:54 CEST] <BtbN> every frame has a ref to the hwframes_ctx, which has a ref to the hwdevice_ctx
[13:23:05 CEST] <BtbN> so the device won't be freed until the last frame has been freed
[13:23:20 CEST] <cone-928> ffmpeg 03Diego Biurrun 07master:eedbeb4c2737: msmpeg4: Remove some broken, commented-out cruft
[13:23:21 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:5114c62902d3: Merge commit 'eedbeb4c2737f28844157fae4bd87ed42a61bb1d'
[13:23:55 CEST] <BtbN> Hm, what's the ffmpeg-way to create a (temporary) string from a number?
[13:24:00 CEST] <cone-928> ffmpeg 03Diego Biurrun 07master:4f98bb7b6d03: msmpeg4: Remove commented-out debug logging code
[13:24:01 CEST] <cone-928> ffmpeg 03Martin Storsjö 07master:31aa5335c390: libopenh264enc: Fix inconsistent whitespace
[13:24:02 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:2335e189fb7b: Merge commit '4f98bb7b6d0323d9ecc3bebd6e24d46a3a374bad'
[13:24:03 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:edb4c4451195: Merge commit '31aa5335c390c83a6c3ea955b155067c36c4a2c4'
[13:24:21 CEST] <nevcairiel> av_d2str?
[13:26:35 CEST] <nevcairiel> itoa etc are probably frowned upon since they use system malloc
[13:26:52 CEST] <wm4> wut
[13:27:09 CEST] <nevcairiel> oh wait they take a buffer
[13:27:14 CEST] <wm4> isn't strtod/ll the proper call
[13:27:31 CEST] <BtbN> that's the other way around
[13:27:33 CEST] <ubitux> afaict its first and only use was in 12ad66712
[13:27:41 CEST] <ubitux> which was removed in 82f19afe
[13:27:49 CEST] <ubitux> maybe
[13:27:57 CEST] <ubitux> i may have skipped steps
[13:27:59 CEST] <nevcairiel> of av_d2str?
[13:28:02 CEST] <ubitux> yeah
[13:28:03 CEST] <nevcairiel> yeah its unused now
[13:28:16 CEST] <nevcairiel> can always use av_asprintf to print it into a string =p
[13:28:24 CEST] <ubitux> yeah, no we can :)
[13:28:57 CEST] <ubitux> now*
[13:29:00 CEST] <cone-928> ffmpeg 03Martin Storsjö 07master:0c9c4004ed57: omx: Don't return > 0 from omx_encode_frame
[13:29:02 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:85146dfc23d3: Merge commit '0c9c4004ed57de210b4d83c7b39bbfb00b86b9af'
[13:29:04 CEST] <ubitux> but it was added in 2011
[13:29:10 CEST] <ubitux> d2str is from 2009
[13:29:21 CEST] <ubitux> the technology wasn't here yet
[13:29:24 CEST] <nevcairiel> heh
[13:29:37 CEST] <BtbN> I remember there being some macro that does it on the stack, specifically to be used as a parameter for a function
[13:30:12 CEST] <ubitux> that's av_ts2str
[13:30:15 CEST] <ubitux> and av_ts2timestr
[13:30:28 CEST] <cone-928> ffmpeg 03Anton Khirnov 07master:5b63b15663d3: lavfi: set the link hwframes context before configuring the dst input
[13:30:29 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:adfcf16f76de: Merge commit '5b63b15663d31f50ce45d980b904a68795ad3f7a'
[13:30:39 CEST] <nevcairiel> so many different things
[13:31:02 CEST] <nevcairiel> all commits merged until the next avconv set, oh well
[13:31:44 CEST] <ubitux> only 416 commits left :3
[13:31:48 CEST] <ubitux> "only" :(
[13:32:18 CEST] <ubitux> sorry 403
[13:33:25 CEST] <nevcairiel> the current avconv set is at least interesting, its the late-init set that fixes the dependency on accurate avformat info, and instead lets teh decoders provide more
[13:33:52 CEST] <BtbN> #define tmp_itoa(i) itoa((i), (char[64]){0}, 10)
[13:33:54 CEST] <BtbN> something like that.
[13:41:23 CEST] <BtbN> I'll just use snprintf.
[14:01:40 CEST] <BtbN> Almost done with this huge set of patches...
[14:45:30 CEST] <cone-928> ffmpeg 03Anton Khirnov 07master:1c169782cae6: avconv: explicitly postpone writing the header until all streams are initialized
[14:45:31 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:82c4d57553d4: Merge commit '1c169782cae6c5c430ff62e7d7272dc9d0e8d527'
[14:47:06 CEST] <nevcairiel> this one was easy, the next ones seem harder:d
[14:57:40 CEST] <cone-928> ffmpeg 03Michael Niedermayer 07master:572f16e10041: avformat/matroskaenc: Fix () error
[15:31:49 CEST] <michaelni> nevcairiel, "./ffmpeg -y -metadata a=b test.ffmeta" broke (results in empty file)
[15:33:24 CEST] <nevcairiel> whats the point of that command working
[15:33:30 CEST] <nevcairiel> it doesnt process any media data
[15:34:35 CEST] <nevcairiel> should probably check AVFMT_NOSTREAMS somewhere though
[15:37:51 CEST] <michaelni> nevcairiel, you can also use "./ffmpeg -i matrixbench_mpeg2.mpg test.ffmeta" that broke too
[15:38:20 CEST] <nevcairiel> a format with no media data is just weird, but should be easily fixed
[15:46:18 CEST] <nevcairiel> michaelni: patch on ml
[15:52:38 CEST] <jamrial> nevcairiel: see my df2ae8f noop'd merge. it's needed before merging one of the upcoming avconv commits (i think 50722b4 but not sure)
[15:52:45 CEST] <jamrial> one of the things we check for framerate is a filtergraph that wouldn't be available where the code would be moved to
[15:53:22 CEST] <nevcairiel> those upcoming ones need careful thinking either way
[15:53:25 CEST] <nevcairiel> move a lot of stuff
[15:53:50 CEST] <jamrial> yeah
[15:54:15 CEST] <nevcairiel> i'll probably call it quits for today, going out in the evening and need to eat before
[16:01:08 CEST] <michaelni> nevcairiel, patch fixes the issue, thanks alot
[16:07:44 CEST] <philipl> BtbN: you do one cooy from the cuvid output buffer to the output frame. If ffmpeg supports arrays, mpv can define an external buffer pool for the hwcontext that is made up of gl textures.
[16:07:55 CEST] <cone-928> ffmpeg 03Hendrik Leppkes 07master:ab7e83efed9c: ffmpeg: explicitly write headers for files with no streams
[16:08:19 CEST] <philipl> so you do the one copy in cuvid and then off you go.
[16:09:17 CEST] <philipl> gl textures are mapped as arrays by interop and you can never get a memory pointer so you use the array mode of memcpy2d
[16:09:23 CEST] <nevcairiel> if your entire goal is direct rendering, why not use vdpau
[16:09:56 CEST] <philipl> because it doesnt support the new hardware decoding capabilities.
[16:10:14 CEST] <nevcairiel> neither does cuvid =p
[16:10:37 CEST] <philipl> You get more from cuvid than vdpau
[16:10:55 CEST] <philipl> and i have more confidence in cuvid catching up than vspau.
[16:11:02 CEST] <nevcairiel> i wouldnt
[16:11:05 CEST] <nevcairiel> cuvid hasnt changed for years
[16:11:13 CEST] <philipl> and let's be clear.
[16:11:18 CEST] <cone-928> ffmpeg 03Michael Niedermayer 07master:72061177f383: ffmpeg: Fix bitstream typo
[16:11:19 CEST] <nevcairiel> except the occasional repackage into a new zip
[16:11:59 CEST] <philipl> i'm not saying this array mode thing is easential by any means. I'm just saying it can be done.
[16:12:10 CEST] <philipl> the vp9 support is new
[16:12:16 CEST] <nevcairiel> i tried to report various issues in cuvid last year and even had some insider tried to get me proper contacts, but they were just not interested
[16:12:40 CEST] <philipl> oh well. vdpau had one engineer who left.
[16:12:51 CEST] <philipl> cant get worse than that.
[16:37:07 CEST] <BtbN> hm, is it possible to have internal functions in libavutil, to be used by the other libraries?
[16:37:17 CEST] <BtbN> So, just ff_ functions with a symbol, but no public header?
[16:38:08 CEST] <ubitux> we avoid them, but avpriv_*
[16:38:44 CEST] <BtbN> Can't really think of a better way. Can't really make them public, as that would involve installing the cuda dynload headers.
[16:39:04 CEST] <BtbN> Could make the whole thing header-only, but that seems kind of a mess
[17:16:00 CEST] <nevcairiel> its really frowned upon to export specific stuff from avutil, if you can find a way without that, that would be much better
[17:16:59 CEST] <BtbN> can't think of one. As libavutil itself, libavfilter and libavcodec need that stuff. The other solution would be to install the dynload_cuvid/nvenc/cuda.
[17:17:06 CEST] <nevcairiel> because anything thats exported, marked public or not, is public ABI
[17:17:51 CEST] <nevcairiel> why cant we just rely on headers installed by the SDK, like we do with any other external component
[17:17:56 CEST] <nevcairiel> this hackery seem to go out of hand
[17:18:50 CEST] <BtbN> Those headers are not part of the SDK
[17:19:21 CEST] <nevcairiel> anyway, exporting implementation specific symbols from avutil needs a really strong case
[17:19:46 CEST] <nevcairiel> we have fought against this before and in the end we got an abstraction in hwcontext instead of various specific crap
[17:20:10 CEST] <nevcairiel> so in short: please don't
[17:20:11 CEST] <nevcairiel> :)
[17:20:20 CEST] <BtbN> Like I said, I could just put all the load-functions as macros in the header. But I'm not sure if that's better.
[17:20:34 CEST] <nevcairiel> stuff works in git master today, doesnt it
[17:20:34 CEST] <nevcairiel> :D
[17:21:13 CEST] <BtbN> It works while requiring a hard link against nvidia libraries and non-free headers.
[17:21:26 CEST] <nevcairiel> thats on nvidia, not us
[17:21:47 CEST] <BtbN> nvidia provides the headers to dynload the libraries. Just using them.
[17:22:07 CEST] <nevcairiel> and hard linking is what we do with all sorts of other hardware libs, too
[17:22:17 CEST] <nevcairiel> feel free to submit to the ML, but expect the same arguments again
[17:23:12 CEST] <nevcairiel> avutil is not a dumping ground for things convenient to be shared between the libraries, its meant to make sense on its own
[17:24:15 CEST] <philipl> A fully inline header does avoid that argument.
[17:24:31 CEST] <BtbN> But it's an ugly hack.
[17:24:41 CEST] <BtbN> including the full loader into absolutely everything
[17:39:46 CEST] <philipl> Put each loader in a separate header ;-)
[17:42:28 CEST] <jamrial> libavcuda
[17:42:41 CEST] <philipl> yes. that was ny next joke.
[17:42:51 CEST] <philipl> followed by libavcore.
[18:05:52 CEST] <jkqxz> An nvidia shim library which contains the headers and does the dynamic loading, but is itself linked directly, doesn't sound like a terrible idea. There is already precedent for that sort of approach with the mfx_dispatch stuff.
[18:07:05 CEST] <jkqxz> I don't know whether the licensing terms would actually permit distribution of such a thing, though.
[18:09:01 CEST] <BtbN> I just took everything that was in ffmpeg already and put it in a header.
[18:09:05 CEST] <BtbN> So I don't see an issue
[18:15:34 CEST] <iive> BtbN: so this header is needed only during compilation and should not be installed with the rest of ffmpeg headers?
[18:16:01 CEST] <BtbN> iive, yes.
[18:16:25 CEST] <BtbN> I'll probably just put it to the other dynload headers in compat/cuda, and make it static inline functions inside of the header
[18:16:43 CEST] <iive> BtbN: then you can place it whereever you like.
[18:16:54 CEST] <iive> that actually sounds like reasonable place.
[18:17:14 CEST] <BtbN> the problem is not the header, but the actual code loading the libraries
[18:23:11 CEST] <jkqxz> Which is why an external shim package which wraps all that up (headers and loading), and is then used just like any normal library, might be a nicer option. All of the code inside ffmpeg would just include the normal headers and call normal functions declared in those headers, not caring about this problem.
[18:24:01 CEST] <BtbN> would be kind of against the point of making it more easily accessible though
[18:24:12 CEST] <jkqxz> And that has use beyond ffmpeg, too. Internal stuff in libavutil might make ffmpeg a bit easier, but anyone using the libraries would still have to implement everything again.
[18:24:41 CEST] <BtbN> Having it as header-only in ffmpeg does that as well.
[18:25:23 CEST] <iive> compat is a directory in ffmpeg root, not in libavutil.
[19:45:19 CEST] <BtbN> philipl, https://gist.github.com/25b8466223cd204f4b84c442631dd941 it's not even _that_ bad.
[19:45:52 CEST] <philipl> BtbN: Indeed. Truly the hero we need.
[21:50:17 CEST] <cone-609> ffmpeg 03James Almer 07master:c45ba265fcbb: avformat/matroskaenc: fix Tags master on seekable output if there are tags after the last stream duration
[21:54:15 CEST] <BtbN> philipl, https://github.com/BtbN/FFmpeg/commit/32b5bda43fccc4cb8a7eb51f6de4df793c8ba… that works. Now just have to incorporate it into the previous 20 commits.
[22:15:49 CEST] <Dresk|Dev> (re-paste from #ffmpeg) So help me out here, we realize getting hardware decoding of H.264 is a difficult thing in ffmpeg due to all the platform differences, but AVHWAccel, what does that actually do for ffmpeg?
[22:17:25 CEST] <Chloe> Dresk|Dev: wrong channel.
[22:17:33 CEST] <Dresk|Dev> Blast!
[22:20:53 CEST] <Dresk|Dev> Chloe: What's the deal with DXVA2 practically haven't no hardware decoding support? I'm actually super surprised my Titan X Pascal cannot hardware decode via ffmpeg, and decoding 4K videos is actually very taxing
[22:20:58 CEST] <philipl> BtbN: w00t. Looks great.
[22:21:25 CEST] <BtbN> Getting it into these commits might be kinda hard though. Some of them don't make sense with this anymore. Might have to re-apply them all manually
[22:21:42 CEST] <philipl> Yeah, but you probably want to squash some of these anyway right?
[22:22:12 CEST] <BtbN> philipl, not really, except for the last one.
[22:22:28 CEST] <Chloe> Dresk|Dev: no idea. I've never worked with hardware accel (as I dont have the hardware for it).
[00:00:00 CEST] --- Sat Oct 8 2016
1
0
[00:49:17 CEST] <Spring> I don't understand the 'ffmpeg' sub-domain in the pastebin.com link, it just redirects to the home page, am I missing something?
[01:09:39 CEST] <llogan> Spring: what link are you referring to?
[01:12:18 CEST] <user314> How can I send a video to /dev/video0?
[01:12:21 CEST] <user314> ffmpeg -i movie.mp4 -f v4l2 /dev/video0
[01:12:27 CEST] <user314> is not correct
[01:14:10 CEST] <llogan> ffmpeg v4l2 is an input device only
[01:14:12 CEST] <Spring> llogan, the ChanServ auto channel message
[01:15:07 CEST] <llogan> Spring: ah. i don't know why that is there. seems superfluous.
[01:18:45 CEST] <llogan> user314: i was wrong. there is a v4l2 output device
[01:19:30 CEST] <llogan> lazy documentation maintainers
[01:19:47 CEST] <llogan> llogan: patch welcome
[01:20:12 CEST] <user314> I ll given the answer in a week: http://superuser.com/questions/1132310/how-can-i-send-a-video-to-my-webcam
[01:20:54 CEST] <llogan> why a week i wonder
[01:28:58 CEST] <klaxa> doesn't rawvideo need dimensions and fps? (maybe fps is optional?)
[01:29:04 CEST] <kuroro> i have 2 short clips that i have merged via iOS code that's not playing properly in Chrome (http://pastebin.com/raw/mhG2GZP2)
[01:29:28 CEST] <kuroro> i was wondering whether the file was not encoded incorrectly on the iphone side or whether its a bug in chrome
[01:29:55 CEST] <klaxa> >pipeline_error: decoder: not supported
[01:29:57 CEST] <kuroro> looking at the chrome://media-internals/ output ( which i included in the pastie), it shows "audio decoder initialization failed"
[01:30:02 CEST] <klaxa> no h264 decoder?
[01:30:12 CEST] <klaxa> ah or no aac decoder
[01:30:24 CEST] <kuroro> is there way to check whether chrome has it?
[01:30:45 CEST] <klaxa> you just did it, it doesn't have it, try playing it with something else?
[01:31:38 CEST] <kuroro> so i merged the same 2 short clips using ffmpeg instead and it plays fine (http://pastebin.com/raw/MT5ihVcP)
[01:32:28 CEST] <kuroro> the only difference between the two it seems like is ffmpeg uses (SoundHandler) and ios uses (Core Media Audio)
[01:32:31 CEST] <kuroro> but both are aac
[01:32:46 CEST] <klaxa> huh, that's weird indeed
[01:36:33 CEST] <FishPencil> Does there exist any way to "deinterlace" a progressive video that should have been originally deinterlaced? I'd imagine it could just take x pixel high horizontal bars and combine them with the next frame
[01:49:14 CEST] <DHE> you can force filters. yadif defaults to deinterlace everything
[01:49:44 CEST] <DHE> give that a spin, see how it works out for you. tweak it if needed (since it can't autodetect some settings)
[01:55:57 CEST] <FishPencil> Wow that looks to be working
[01:56:29 CEST] <FishPencil> That's pretty impressive, because my source is progressive
[02:42:35 CEST] <SchrodingersScat> ffmpeg is basically magic
[02:43:57 CEST] <realies> what would be a modernly specd headless ffmpeg transcoding/encoding server?
[02:44:13 CEST] <realies> in means of do you need cpu or gpu acceleration or both
[12:08:31 CEST] <InTheWings> Any reason, after having removed the priv from AVFrame, for not having an AV_FRAME_DATA_PRIVATE auto mapped to an AV_FRAME_DATA_PRIVATE ?
[12:09:23 CEST] <InTheWings> err AV_PKT_DATA_PRIVATE mapped to an AV_FRAME_DATA_PRIVATE
[12:30:22 CEST] <n4zarh_> any1 can help me with avcodec_fill_audio_frame function? I asked for some help here lately, but I guess I still fail hard at this
[12:33:32 CEST] <n4zarh_> what I do is: I start encoder library with 640 bytes PMC data buffer, I create frame, I set its parameters (format, channel_layout according to codec context and nb_samples = 640)
[12:33:54 CEST] <n4zarh_> i call av_frame_get_buffer(frame, 0), no errors so far
[12:35:04 CEST] <n4zarh_> next I try to fill it: avcodec_fill_audio_frame(frame, channels, sample_fmt, (uint8_t*)buffer, 640 bufferLen, 0)
[12:35:58 CEST] <n4zarh_> and I always get -22 error at this point, which AFAIR should mean "wrong parameters"
[12:36:11 CEST] <nonex86> enable ffmpeg debug outpuy
[12:36:14 CEST] <nonex86> *output
[12:36:20 CEST] <nonex86> i see the detailed error
[12:37:16 CEST] <nonex86> av_log_set_level()
[12:38:23 CEST] <nonex86> with AV_LOG_VERBOSE
[12:38:36 CEST] <nonex86> this should help :)
[12:40:19 CEST] <n4zarh_> I guess it would if I knew how to read av_log (whole ffmpeg is built with android ndk)
[12:42:10 CEST] <nonex86> well
[12:42:17 CEST] <n4zarh_> is there any way to redirect messages from av_log to another function?
[12:42:18 CEST] <nonex86> you can redirect the output :)
[12:42:21 CEST] <nonex86> interesting? :D
[12:42:26 CEST] <nonex86> sure
[12:42:45 CEST] <nonex86> av_log_set_callback() :)
[12:43:12 CEST] <nonex86> *interested
[12:44:06 CEST] <nonex86> signature should be something like void __cdecl log_callback(void *, int, const char *, va_list)
[12:55:46 CEST] <n4zarh_> couldn't use __cdecl because my functions are in c++ and compiler screams about ignoring it and having to type specifier, so I create void log_callback(void* avcl, int level, const char* fmt, va_list vl) and set it like av_log_set_callback(log_callback()) only to get an error "no matching function to call to log_callback"
[12:58:13 CEST] <jkqxz> You're calling log_callback to make its return value the argument to the function. Remove the "()".
[12:58:42 CEST] <nonex86> yeah, pass a pointer, not function call result
[12:59:32 CEST] <n4zarh_> oh god, you're right
[13:03:42 CEST] <n4zarh_> so, I have few troubling messages: "Bitrate 7013663263447580672 is extremely low, maybe you mean 7181192518920706592k" - I set 8 as codeccontext bitrate, I guess that might be wrong
[13:08:20 CEST] <n4zarh_> "nal_unit_type: 1657579756, nal_ref_idc: 44594" - high value of the latter always ends with "unknown SEI type 1657579748" in the next line
[13:08:29 CEST] <n4zarh_> and it happens once in a while
[13:08:41 CEST] <nonex86> last message related to h264 stream
[13:08:51 CEST] <nonex86> not the audio
[13:09:13 CEST] <nonex86> check last ffmpeg output messages
[13:09:22 CEST] <nonex86> at the point you get your error
[13:09:46 CEST] <n4zarh_> maybe that would be this:
[13:09:58 CEST] <nonex86> bitrate error looks strange for me
[13:10:35 CEST] <n4zarh_> non-existing PPS 1657579628 referenced [\n] decode_slice_header error [\n] no frame! [/n] nal_unit_type: 1657579756, nal_ref_idc: 4709
[13:10:57 CEST] <nonex86> pps error is also h264 related error
[13:11:07 CEST] <nonex86> not audio ones
[13:12:01 CEST] <n4zarh_> crap, discarding any h264 and audio decoder messages might be a bit hard, let me rewrite some stuff
[13:13:00 CEST] <nonex86> usually internal messages is very clear states the problem, at the moment when you call some ffmpeg function and failed
[13:13:28 CEST] <nonex86> possible you are missed something
[13:13:48 CEST] <nonex86> or, maybe supplied something very wrong to ffmpeg?
[13:13:57 CEST] <n4zarh_> i'm just running two decoders at the same time as I try to run encoder, temporarily disabled it, let me check
[13:14:15 CEST] <nonex86> sure
[13:14:42 CEST] <nonex86> check twice your audio encoder initialization code
[13:14:50 CEST] <nonex86> and buffer allocation stuff
[13:15:14 CEST] <nonex86> check parameters
[13:15:27 CEST] <n4zarh_> only thing I get is the bitrate stuff
[13:15:57 CEST] <nonex86> which audio encoder do you use?
[13:16:05 CEST] <n4zarh_> pcm_mulaw
[13:16:06 CEST] <nonex86> AV_CODEC_*?
[13:17:28 CEST] <nonex86> one more question
[13:17:34 CEST] <nonex86> why are using 8 as bitrate?
[13:18:49 CEST] <n4zarh_> i should use 8k samplerate, 8 bitrate and 1 channel from what I saw in decoder
[13:19:00 CEST] <n4zarh_> and decoder is working fine with the same params
[13:20:50 CEST] <TwinTailed> when using libav for encoding, the last audio frame is missing
[13:21:03 CEST] <TwinTailed> ffmpeg's libav, not the external libav library
[13:21:32 CEST] <TwinTailed> i am encoding h264
[13:22:15 CEST] <nonex86> TwinTailed: if you are have missing audio frame, why are you mention h264?
[13:22:41 CEST] <TwinTailed> nonex86: just for more info
[13:22:50 CEST] <n4zarh_> h264 is video codec
[13:23:11 CEST] <nonex86> TwinTailed: do you flashed your audio decoder at the end?
[13:23:13 CEST] <TwinTailed> avc/aac
[13:23:20 CEST] <TwinTailed> nonex86: http://pastebin.com/mAbRFvH7
[13:23:25 CEST] <nonex86> TwinTailed: ffmpeg have standard flush protocol
[13:23:31 CEST] <TwinTailed> line 255
[13:23:35 CEST] <nonex86> TwinTailed: for encoders/decoders
[13:23:59 CEST] <TwinTailed> nonex86: I did flush
[13:24:12 CEST] <n4zarh_> anyway, any idea why is ffmpeg showing these crazy numbers as wrong bitrate for me?
[13:25:06 CEST] <nonex86> TwinTailed: at the line you mention i see you just allocated packets, thats all :)
[13:25:23 CEST] <TwinTailed> nonex86: line 255 and below is the transcoding process :P
[13:25:28 CEST] <TwinTailed> the whole for loop
[13:25:59 CEST] <TwinTailed> until line 385
[13:26:01 CEST] <nonex86> TwinTailed: well, sorry, i dont have time to check whole source for you :P
[13:26:42 CEST] <n4zarh_> also, it seems like the latter number is changing every time I start my encoder
[13:26:46 CEST] <TwinTailed> nonex86: its just a small code, please, no one here helped me so far with this problem
[13:27:30 CEST] <TwinTailed> i asked many times
[13:27:55 CEST] <nonex86> the idea is simple
[13:28:01 CEST] <nonex86> and looks like you do something like this
[13:28:29 CEST] <nonex86> AVPacket packet; av_init_packet(&packet);
[13:28:40 CEST] <nonex86> packet.data = nullptr; packet.size = 0;
[13:28:47 CEST] <nonex86> feed this packet to encoder
[13:29:03 CEST] <nonex86> until it return something
[13:29:08 CEST] <nonex86> that should work
[13:29:28 CEST] <nonex86> so you get your buffered AVFrame's
[13:30:28 CEST] <TwinTailed> nonex86: I know, that's what i am doing
[13:30:38 CEST] <TwinTailed> nonex86: but there is EOF at the end
[13:31:01 CEST] <nonex86> for(;; ++j)
[13:31:06 CEST] <nonex86> nice loop btw :D:D:D
[13:31:12 CEST] <TwinTailed> :D
[13:31:21 CEST] <n4zarh_> :D
[13:31:24 CEST] <nonex86> why are you care about eof?
[13:31:25 CEST] <nonex86> again
[13:31:25 CEST] <TwinTailed> it ends when EOF is returned
[13:31:29 CEST] <nonex86> you get your packet
[13:31:37 CEST] <TwinTailed> because without EOF I don't get all frames
[13:31:39 CEST] <nonex86> you put your packet to decoder
[13:31:41 CEST] <nonex86> decode it
[13:31:47 CEST] <nonex86> and then put frame to encoder
[13:31:50 CEST] <nonex86> fine
[13:31:54 CEST] <nonex86> you get eof
[13:32:00 CEST] <nonex86> now you need to flush your decoders
[13:32:04 CEST] <nonex86> and flush your encoders
[13:32:12 CEST] <nonex86> flush decoders if you need
[13:32:20 CEST] <nonex86> until you got all data from them
[13:32:29 CEST] <nonex86> then create this "nulldata" packet
[13:32:36 CEST] <nonex86> and feed this packet to encoder
[13:32:50 CEST] <nonex86> until you get packets from encoder :)
[13:32:52 CEST] <nonex86> thats all
[13:33:37 CEST] <nonex86> i am sorry
[13:33:45 CEST] <TwinTailed> nonex86: I already do that :(
[13:33:47 CEST] <nonex86> ah, never mind :)
[13:34:08 CEST] <TwinTailed> nonex86: when do i use avcodec_flush_buffers?
[13:34:21 CEST] <n4zarh_> hey, if I'm calling avcodec_open2(ctx, codec, NULL) and I get this error/warning/whatever at this given moment
[13:34:35 CEST] <n4zarh_> is it possible that context is not initialized properly?
[13:36:51 CEST] <nonex86> TwinTailed: documentation said:
[13:36:53 CEST] <nonex86> void avcodec_flush_buffers ( AVCodecContext * avctx )
[13:36:53 CEST] <nonex86> Reset the internal decoder state / flush internal buffers.
[13:36:53 CEST] <nonex86> Should be called e.g. when seeking or when switching to a different stream.
[13:37:08 CEST] <TwinTailed> nonex86: I mean in EOF
[13:37:29 CEST] <TwinTailed> nonex86: http://ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[13:37:39 CEST] <jkqxz> n4zarh_: Did you allocate a clean AVCodecContext with avcodec_alloc_context3? If you don't, all sorts of strange things will go wrong.
[13:37:55 CEST] <n4zarh_> I did
[13:38:27 CEST] <nonex86> TwinTailed: which version of ffmpeg do you use?
[13:38:33 CEST] <nonex86> TwinTailed: latest?
[13:39:06 CEST] <TwinTailed> nonex86: yes
[13:39:32 CEST] <nonex86> TwinTailed: i am still using decode_video* and all other in 3.0.0, and they are not marked as legacy :)
[13:39:40 CEST] <jkqxz> n4zarh_: Are you sure that your headers actually match the library version you are using? (You bitrate value above was suspiciously zero in the low half.)
[13:40:29 CEST] <n4zarh_> well, I am working on a single version from the start
[13:41:07 CEST] <n4zarh_> sometimes changing ./configure script and updating files, but never changing version
[13:42:22 CEST] <nonex86> you said its an android application?
[13:42:34 CEST] <nonex86> with some interop with ndk build ffmpeg?
[13:42:44 CEST] <jkqxz> And you don't happen to have a different version installed somewhere else on the same machine, and you are happening to use the headers from it by accident?
[13:47:44 CEST] <n4zarh_> hmm, I guess not, gonna check it out though
[13:48:15 CEST] <n4zarh_> everything my NDK uses to build app with is in jni/ffmpeg directory
[13:49:48 CEST] <n4zarh_> okay, I'm running short on time (i need to get on the bus in few minutes and I'll be back in ~1-2h
[13:50:01 CEST] <n4zarh_> so, I stopped setting bitrate, error stopped showing
[13:50:52 CEST] <n4zarh_> but I still get -22 error on filling audio frame
[13:51:00 CEST] <n4zarh_> without any information from avlog
[13:51:10 CEST] <n4zarh_> i'll be back in about an hour
[13:51:34 CEST] <nonex86> well
[13:51:41 CEST] <nonex86> from the pcm.c
[13:51:57 CEST] <nonex86> bit_rate field in context just overwrited internally
[13:52:25 CEST] <nonex86> not sure, did i pick correct file for AV_CODEC_ID_PCM_MULAW
[13:53:36 CEST] <nonex86> guess n4zarch_ just forgot to supply block_align
[13:54:10 CEST] <nonex86> that why he got random values in the debug output
[13:54:23 CEST] <nonex86> *thats
[16:54:05 CEST] <pgorley> is videotoolbox for mpeg4 broken?
[16:54:52 CEST] <pgorley> i keep getting operation not permitted
[19:17:54 CEST] <poopiefly> need to archive some video. Was asked to use HuffYUV. Should I be using ffvhuff ?
[19:19:02 CEST] <poopiefly> how compatible is ffvhuff with commercial editors? Would ffv1 be a better choice?
[19:24:16 CEST] <dgsjm> When outputting an image sequence from a video, the first three frames are always identical. What am I doing wrong? command: ffmpeg -i input.mp4 -r 0.5 output/%03d.png
[19:29:44 CEST] <klaxa> why -r 0.5?
[19:31:36 CEST] <dgsjm> i'm trying to limit the frame rate
[19:31:37 CEST] <bornpilot> from what I understand if I downsample 4k 4:2:0 to 1080 HD I can get 4:2:2, if that is true and I have a 2k footage and I downsample the 2k 4:2:0 will it downsample as 4:2:1 ?
[19:32:15 CEST] <c_14> poopiefly: if you're using commercial editors you probably want utvideo as that's supported by most of them, otherwise I'm not sure about the support. If they use libav* for decoding it'll support them all and you can use whatever you want.
[19:32:49 CEST] <dgsjm> What I want to do is export a fixed number of frames from a video of any length, and set the file size of each exported JPG. So, regardless of the length of the video, I want 100 frames at 15k each. Having trouble finding that in the documentation.
[19:33:51 CEST] <c_14> Do the frames need to be spread out over the video?
[19:34:05 CEST] <c_14> Do you want to support videos with less than 100 frames?
[19:34:22 CEST] <dgsjm> Yes, I'd like them to be evenly spaced. No, I don't need to support videos with less than 100 frames.
[19:34:59 CEST] <iive> bornpilot: yuv420 have quarter resolutons (1/2 * 1/2) for the chroma channel. so if you downscale only the luma channel, you can get yuv444 from it.
[19:35:42 CEST] <bornpilot> live that would be from the 4k correct and then from 2k I could get 4:2:2?
[19:35:44 CEST] <iive> luma channel is gray levels, chroma is color differential.
[19:36:22 CEST] <bornpilot> I have never worked with downscaling just one chanel, interesting.
[19:36:27 CEST] <iive> you can always turn 420 into 444, it just won't have the detail. aka you won't restore lost data.
[19:36:54 CEST] <bornpilot> right I want to avoid faking 444
[19:37:37 CEST] <poopiefly> c_14 was afk. utvideo is supported by commercial. Just going to archive 420p8 colorspace video. I use to use utvideo but it tended to crash a lot. Maybe I should give it a new try?
[19:37:58 CEST] <c_14> poopiefly: libutvideo or the internal one?
[19:38:15 CEST] <poopiefly> the one that is part of ffmpeg
[19:38:55 CEST] <poopiefly> guess that is libutvideo. Not sure what I compiled in
[19:39:09 CEST] <iive> bornpilot: i'm not familiar with swscale, so I can't say if it would keep the chroma channels automatically
[19:39:28 CEST] <iive> but i't might.
[19:39:41 CEST] <bornpilot> iive so if I downsclaed just the luma channel on a 2k video could I get 442?
[19:40:02 CEST] <bornpilot> I am working with an iphone
[19:40:33 CEST] <root> please help: http://ffmpeg.gusari.org/viewtopic.php?f=11&t=3172&p=9458#p9458
[19:40:41 CEST] <iive> the standar is 444 422 420 , there are no 442 and 421 or rather... not widely used standards
[19:41:57 CEST] <bornpilot> iive okay. I am guessing then I would have to declare the pix_fmt if I am using a prores code profile 4
[19:42:06 CEST] <bornpilot> ^codec
[19:42:08 CEST] <iive> 444 have YUV at same resolution. 422 have chroma channels at half (horizontally) resolution,
[19:42:27 CEST] <iive> 420 is chroma at quarter (1/2*1/2)
[19:44:59 CEST] <poopiefly> what is the difference between 420 planer and just 420?
[19:45:48 CEST] <iive> 420 is usually planar, meaning that each channel is in its own array (2D)
[19:46:20 CEST] <TwinTailed> when using libav for transcoding, the last audio frame is missing (Codecs AVC/AAC), only the last audio frame
[19:47:43 CEST] <iive> yuyv uyuv are packed formats. they are 422 equivalent. e.g. it's just that all samples for a pixel are packed together. you have (y1,u,v) and (y2,u,v) where u and v are same for both luma (y) samples.
[19:50:25 CEST] <poopiefly> I really want to keep my video in 420p but need to use VirtualDubs deshaker. Think that only works with RGB24,32 ? How bad are the rounding errors etc? Looks like I got banding on my blacks now =/
[19:56:25 CEST] <furq> poopiefly: avisynth/vapoursynth have some deshake filters that work with yuv
[19:56:58 CEST] <furq> http://avisynth.nl/index.php/External_filters#Stabilization
[19:57:01 CEST] <poopiefly> I know but depan is not really all that good
[19:58:08 CEST] <c_14> dgsjm: https://pb.c-14.de/t/kng.wCJ2yr something like that should work (don't ask me why you need the decimate, I'm not quite sure myself)
[19:59:14 CEST] <c_14> furq: I based that^ on something you pasted a while back, but you didn't have the decimate. Is it supposed to work without (as in not spam the same frame about a thousand times before outputting the next)?
[19:59:44 CEST] <furq> the script i based that on has select before thumbnail
[19:59:53 CEST] <poopiefly> furq The problem with depan from mtools2 is that you can only pick between mirror, zoom, or blur for the edges. Deshaker can use temporal images and rebuild the missing border info. I use it with a slight adaptive zoom. The result is crazy nice.
[20:00:00 CEST] <furq> iirc it worked without select but i'm not totally sure
[20:00:10 CEST] <furq> i've no idea why you'd need decimate though
[20:00:27 CEST] <dgsjm> c_14: Thank you! I'll give it a try right now.
[20:00:59 CEST] <c_14> dgsjm: of course in your case you'll want jpg and the options according to that, that's just the general version
[20:05:30 CEST] <iive> poopiefly: ffmpeg supports stabilization filter through external library
[20:06:22 CEST] <furq> oh weird
[20:06:33 CEST] <furq> i was feeding thumbnail to tile, it works fine if you do that
[20:06:50 CEST] <furq> but it doesn't seem to work right with frames:v
[20:08:20 CEST] <poopiefly> iive I have tried it, its ok. What I really am looking for is that the black borders can be rebuilt with temporal frames. Not just blurry.
[20:08:24 CEST] <dgsjm> c_14: ffprobe says "Unrecognized option 'select_streams'". Maybe v 0.11.1 is too old?
[20:08:37 CEST] <furq> probably
[20:08:41 CEST] <iive> poopiefly: i see...
[20:09:22 CEST] <poopiefly> deshaker does this well. I use 150 plus and 150 minus frames.
[20:09:23 CEST] <furq> poopiefly: http://johnvansickle.com/ffmpeg/
[20:09:28 CEST] <c_14> furq: If I get rid of both the decimate and the frames:v ffmpeg outputs about a thousand copies of each frame the thumbnail filter selects
[20:09:34 CEST] <furq> yeah i just tried it
[20:09:56 CEST] <furq> it doesn't work even if frames:v is higher than the thumbnail range
[20:10:49 CEST] <furq> i don't know how that even works with tile then
[20:12:21 CEST] <c_14> furq: I found it
[20:12:28 CEST] <c_14> Adding -vsync 0 fixes it (as an output option)
[20:12:37 CEST] <c_14> It's listed under the examples for the tile filter
[20:12:59 CEST] <furq> oh neat
[20:13:45 CEST] <poopiefly> furq thx, but what am I missing that these builds might have ?
[20:14:16 CEST] <furq> well those builds aren't several years old for starters
[20:14:44 CEST] <furq> 0.11.1 is four and a half years old
[20:15:39 CEST] <c_14> dgsjm: https://pb.c-14.de/t/kng.Y42xnm updated version and you'll want something much newer (the thumbnail filter is at least 3.0.0 iirc)
[20:16:11 CEST] <furq> thumbnail is present in 2.8
[20:16:19 CEST] <furq> it is pretty recent though
[20:16:26 CEST] <dgsjm> c_14, furq: ok ill try to update. thanks.
[20:16:28 CEST] <c_14> Oh, must have gotten my timescale off by a bit then
[20:17:00 CEST] <furq> freebsd still haven't sorted out the 3.0 api changes so my nas is stuck on 2.8
[20:34:27 CEST] <teratorn> so I'm really confused why this ffmpeg command places two video output streams in to out.mp4: ffmpeg -y -i in.mp4 -filter_complex "[0:v]split=2[v1][v2];[v1]trim=start=0.5,trim=start_frame=0:end_frame=1,loop=30:size=1:start=0[out];[v2]null" -map "[out]" out.mp4
[20:34:34 CEST] <teratorn> in.mp4 just has one video stream
[20:35:12 CEST] <teratorn> I *thought* that when you used a -map that disabled the default mapping of one video/audio/subtitle (the "best" one) per output...
[20:35:18 CEST] <TwinTailed> when using libav for transcoding, the last audio frame is missing (Codecs AVC/AAC), only the last audio frame
[20:38:25 CEST] <teratorn> could anyone tell me why adding a split filter is having this effect? (two video streams going in to out.mp4, when I only expect one, since I have only one -map option)
[20:53:00 CEST] <c_14> teratorn: I think ffmpeg automatically maps unnamed outputs, in your case the output of the null filter
[20:53:03 CEST] <kepstin> teratorn: hmm, I would have expected that to give an error, unconnected pad on the filterchain.
[20:53:12 CEST] <kepstin> weird that it's putting it into the file
[20:53:35 CEST] <kepstin> i guess you only get the unconnected pad error on named pads
[20:59:15 CEST] <tua> !list
[22:11:47 CEST] <Dresk|Dev> So help me out here, we realize getting hardware decoding of H.264 is a difficult thing in ffmpeg due to all the platform differences, but AVHWAccel, what does that actually do for ffmpeg?
[23:15:15 CEST] <TwinTailed> when using libav for transcoding, the last audio frame is missing (Codecs AVC/AAC)
[23:23:28 CEST] <Technologov> hi all !
[23:24:34 CEST] <Technologov> I have a VERY strange problem. I encoded a two videos (vcodec=libx264) that end up being playable in VLC and Windows Media Player, but not Apple iTunes/iPad.
[23:31:03 CEST] <BtbN> Embedded Devices often don't support all codec features.
[23:31:16 CEST] <furq> Technologov: pastebin the ffprobe output
[23:31:20 CEST] <BtbN> You'll have to look up what your target device supports and limit the features accordingly.
[23:32:55 CEST] <Technologov> Two of my videos have very very strange behavior:
[23:32:55 CEST] <Technologov> They can forward+rewind first few minutes of the video, and after that I can't forward/rewind/seek video (but seeking audio still works).
[23:33:06 CEST] <Technologov> iPad Pro
[23:34:59 CEST] <TwinTailed> BtbN: can you please help me with my problem :S when transcoding using LibAV to AVC/AAC the last audio frame is missing
[23:35:02 CEST] <Technologov> http://pastebin.com/Wh94xZR0
[23:35:08 CEST] <TwinTailed> I have done the EOF as u told me
[23:35:27 CEST] <BtbN> TwinTailed, does it also happen when using the ffmpeg cli tool?
[23:35:27 CEST] <Technologov> OMG : ffprobe doesn't support redirect to STDOUT. Bug ?
[23:35:38 CEST] <BtbN> Technologov, it outputs on stderr.
[23:35:56 CEST] <TwinTailed> BtbN: No it doesnt
[23:36:43 CEST] <BtbN> It's a problem in your code then.
[23:37:07 CEST] <Technologov> okay, I posted ffprobe output
[23:38:14 CEST] <Technologov> this file and another one share similar behavior: cannot rewind/seek video on Apple, beyond 1st several minutes. And no amount of encoding helps.
[23:38:31 CEST] <Technologov> (I tried different bitrates, different resolutions, ... nada)
[23:39:28 CEST] <TwinTailed> BtbN: I know it is :/ But I can't solve it, I've tried everything (Almost)
[23:40:32 CEST] <Technologov> furq, http://pastebin.com/Wh94xZR0
[00:00:00 CEST] --- Sat Oct 8 2016
1
0
[02:18:21 CEST] <cone-136> ffmpeg 03Timothy Gu 07master:bdcd586c0df8: pixdesc: Order function prototypes semantically
[02:18:22 CEST] <cone-136> ffmpeg 03Timothy Gu 07master:54220ce731f1: pixfmt: Use enum assignment for aliases
[04:49:51 CEST] <rcombs> jamrial: around?
[05:49:58 CEST] <jamrial> rcombs: yeah
[05:51:02 CEST] <rcombs> jamrial: so, I haven't applied your MKV patch series locally, but my understanding is that it wouldn't help this case, because e.g. when writing the final global duration, we don't check if the pb is seekable and just try it anyway&
[05:51:36 CEST] <rcombs> &and then the seek _succeeds_ in the segment case, since the underlying pb (currently) is a file, and even if we mark it non-seekable the seek call still works
[05:51:42 CEST] <jamrial> in write_trailer()? isn't all that under a seekable check?
[05:51:54 CEST] <rcombs> just, we end up at that offset in the last segment, not the first/header one
[05:52:05 CEST] <rcombs> jamrial: writing each stream's duration is; writing the global one is not
[06:06:54 CEST] <jamrial> rcombs: look at the stuff inside the pb->seekable check in mkv_write_trailer. unless i'm missing something, both global and stream durations are in there
[06:10:35 CEST] <rcombs> jamrial: oh, sorry! It's been a while and I misremembered the cause of the problem
[06:11:02 CEST] <rcombs> jamrial: it wasn't the duration, but instead the `end_ebml_master(pb, mkv->segment);`
[06:11:35 CEST] <rcombs> though that's since been wrapped in an `is_live` check, so I suppose it can be worked around
[08:59:36 CEST] <cone-183> ffmpeg 03Rodger Combs 07master:4c9c4fe8b21b: lavf/utils: ignore outlier subtitle and data stream end times as well
[08:59:36 CEST] <cone-183> ffmpeg 03Rodger Combs 07master:a6bce3ca90de: lavf/utils: avoid using programs for duration when there's only one
[11:30:44 CEST] <ubitux> gopro videos have "moments", which represent specific instant in a video. they are stored in udta in mov
[11:30:52 CEST] <ubitux> should they be exported as a crafter string
[11:30:55 CEST] <ubitux> or "chapters"
[11:31:11 CEST] <ubitux> chapters represent a segment, while moment are just instant time technically
[11:31:30 CEST] <ubitux> still, it's probably better than a crafted string with ts separated by space/comma/whatever
[11:31:52 CEST] <ubitux> or even multime moment0=234 moment1=542 moment2=4531 etc
[11:32:28 CEST] <nevcairiel> chapters is probably fine, if no other chapter info is available
[11:32:59 CEST] <wm4> sounds like chapters to me
[11:33:15 CEST] <ubitux> so chapters with end=NOPTS?
[11:33:34 CEST] <nevcairiel> dont think thats valid
[11:33:53 CEST] <ubitux> there is a special case if (end != AV_NOPTS_VALUE && start > end)
[11:34:02 CEST] <ubitux> at the beginning of avpriv_new_chapter()
[11:34:10 CEST] <ubitux> maybe it's an automatic "til the next/end"
[11:34:27 CEST] <nevcairiel> if it accepts end=NOPTS then thats probably fine, i thought it would also block that
[13:21:46 CEST] <BtbN> philipl, can't you use http://datamining.xmu.edu.cn/documentation/cuda4.1/group__CUDA__TEXREF_g26f… ?
[13:21:50 CEST] <BtbN> To bind your texture?
[13:59:47 CEST] <jkqxz> wm4: VAAPI is usable with mesa/gallium on recent AMD graphics cards (and I think some Nvidia, though I haven't seen that working myself) - you could put one of those in a big-endian machine. (It doesn't support 10-bit surfaces, though, so little point in doing that for now.)
[14:02:23 CEST] <cone-183> ffmpeg 03Nablet Developer 07master:8d858674fd1b: avcodec/qsvenc_h264: fix segfault when a53 SEI is not available
[14:04:59 CEST] <iive> Is that a real name? Nablet Developer?
[14:08:09 CEST] <wm4> it's a company
[14:09:17 CEST] <iive> aha
[15:03:46 CEST] <Compn> corporations are people, my friend\
[15:10:27 CEST] <iive> Compn: I'll believe it, when texas executes one.
[15:15:27 CEST] Action: Rathann makes some popcorn and heads back to #libav-devel
[15:16:08 CEST] <Rathann> jkqxz: which cards are considered "recent"?
[15:16:50 CEST] <Rathann> jkqxz: is Radeon HD 7970 recent enough or ancient already? ;)
[15:26:05 CEST] <iive> Rathann: it is recent enough to get vulkan support eventually...
[15:26:13 CEST] <jkqxz> Rathann: GCN-era. That one should work, though you'd have to try it to see if it actually does. Decode-only might work on earlier ones, I don't really know.
[15:30:56 CEST] <Rathann> cool
[15:41:10 CEST] <iive> i've been using mesa gallium video decode for ages on hd5670 :D and much earlier ones are supported.
[15:47:03 CEST] <wm4> I thought you use xvmc
[15:47:36 CEST] <iive> mesa gallium provides xvmc, vdpau , vaapi and probably some more.
[15:52:30 CEST] <BtbN> why would someone voluntarily use vaapi?
[15:54:40 CEST] <iive> why? Is it bad API? I thought that just the implementation is bad - rigged with bugs and random crashes.
[15:54:41 CEST] <kwizart> iive, omxil
[15:55:12 CEST] <iive> kwizart: i think it needs some external libary for omx
[15:56:01 CEST] <BtbN> iive, it's a horrible to use API.
[15:56:03 CEST] <kwizart> yep, only for the loader (and the headers), one can use bellagio-omxil, but it's unmaintained
[15:56:23 CEST] <BtbN> And it's just a very thing abstraction around Intel-Hardware.
[15:56:34 CEST] <iive> BtbN: even for decoding only?
[15:56:38 CEST] <BtbN> The mesa devs implementing it for some other hardware had to jump through some hoops to kind of emulate the API.
[15:56:40 CEST] <BtbN> iive, yes.
[15:56:55 CEST] <nevcairiel> for decoding it seems largely similar to the other traditional hwaccels
[15:57:21 CEST] <nevcairiel> although the functions to download an image of a vaapi surface is apparently quite arcane, and there is like 3 of them
[15:57:41 CEST] <BtbN> The "propper" way to download images via VAAPI does not exist in ffmpeg.
[15:57:51 CEST] <BtbN> Which is why it's horribly slow, barely managing 60 FPS on 1080p
[15:57:57 CEST] <BtbN> Because it's a mess
[15:58:03 CEST] <wm4> I had quite some trouble with this
[15:58:13 CEST] <nevcairiel> from what I am told, the "proper" way is just quite annoying for various reasons
[15:58:18 CEST] <nevcairiel> and as such didnt fit ffmpeg
[15:58:29 CEST] <BtbN> Someone would have to write yasm for it. I have code using intrinscis for it.
[15:58:38 CEST] <BtbN> And something is wrong with that code, as it's still slow.
[15:59:12 CEST] <nevcairiel> anton wrote a sse4 download yasm for libav, it might get merged sometime this year if we're lucky =p
[15:59:37 CEST] <jkqxz> Er, what? How can it possibly be that slow? (Unless you're using a 3Hz Bay Trail or something.)
[16:00:00 CEST] <nevcairiel> without magic copy it slows down that much for me on windows too
[16:00:07 CEST] <nevcairiel> or at least used to
[16:00:17 CEST] <nevcairiel> more revent drivers a nd/or hardware seem to have improved that
[16:00:20 CEST] <nevcairiel> recent*
[16:00:34 CEST] <wm4> yeah, in some cases system memcpy seems to be just as fast
[16:00:36 CEST] <nevcairiel> dont have my old intel gpus around anymore
[16:00:47 CEST] <jkqxz> Download runs at ~800fps or so with the GPU copy. Magic memcpy can match that on the high-power cores, but it seems to suck on the low-power ones.
[16:00:50 CEST] <nevcairiel> gave my sandybridge to my father =p
[16:01:43 CEST] <iive> no dma to system ram?
[16:02:03 CEST] <nevcairiel> old ones didnt have that, not sure if driver or hardware thing
[16:02:11 CEST] <nevcairiel> new setups seem to do it for me
[16:02:28 CEST] <nevcairiel> at least the braswell i tested last week was fine with just memcpy
[16:03:11 CEST] <BtbN> 1080p on bsw with memcpy is ~10 fps for me.
[16:03:34 CEST] <nevcairiel> use windows then! :P
[16:03:41 CEST] <bofh_> anything with enhanced rep/mov stosb (cpuid eax=7, bit 9 of ebx) *should* be fine with just memcpy
[16:03:43 CEST] <nevcairiel> or update drivers, maybe it helps
[16:03:48 CEST] <bofh_> (assuming memcpy isn't implemented idiotically)
[16:04:03 CEST] <BtbN> which drivers? It's all in kernel or vaapi intel.
[16:04:09 CEST] <BtbN> The graphics drivers don't matter
[16:04:11 CEST] <jkqxz> Yeah, memcpy sucks on Braswell, and magic memcpy isn't much better. Use the GPU copy instead, it runs at >200fps.
[16:05:04 CEST] <BtbN> GPU memcpy?
[16:06:22 CEST] <jkqxz> What hwcontext_vaapi.c does at the moment.
[16:06:32 CEST] <BtbN> that barely manages 60 FPS for 1080p.
[16:08:49 CEST] <jkqxz> Actually looking at my results, it is ~120fps. Increasable to ~150fps with a bit of hacking (avoid the second copy), but not in a way that fits cleanly into the current API.
[16:09:21 CEST] <jkqxz> Maybe you are doing something slow after that step?
[16:09:28 CEST] <bofh_> I just took a look at the libav diff for a GPU memcpy() and it's literally just a non-temporal memcpy.
[16:09:50 CEST] <bofh_> (no idea why they use movntdqa when movntps is equivalent and SSE2 instead of SSE4.1, but <shrug>)
[16:09:51 CEST] <BtbN> decoding to -c:v rawvideo -f null -?
[16:10:07 CEST] <bofh_> https://github.com/libav/libav/commit/d7bc52bf456deba0f32d9fe5c288ec441f1eb… for the curious
[16:10:15 CEST] <nevcairiel> bofh_: that instruction has special magic, its not just non-termporal, its specifically designed for rading from gpu memory
[16:10:32 CEST] <bofh_> nevcairiel: oh. huh. thanks, will reread intel manual.
[16:11:01 CEST] <nevcairiel> (or more specifically, from uncacheable speculative write combining memory)
[16:12:26 CEST] <bofh_> err, isn't the main use of a nontemporal load to move data to/from speculative write-combining memory, omitting caches in the process?
[16:12:37 CEST] <bofh_> load/store*
[16:13:02 CEST] <BtbN> the whole purpose of this is to get the raw frame out of VAAPI without plummeting to 10FPS because memcpy is slow for uswc memory
[16:14:56 CEST] <jkqxz> No, the whole purpose was to get the raw frame out of dxva where there isn't another route. Doing it for VAAPI was put off for further study because there is already a fast path there, and even on cores where the uswc load is fast the gains very marginal and required threading.
[16:15:08 CEST] <BtbN> "fast"
[16:15:09 CEST] <bofh_> ahh, I see, movntdqa in SSE4 is the only nontemporal *load*.
[16:15:25 CEST] <bofh_> the rest are only nontemporal *stores*.
[16:15:33 CEST] <BtbN> it's not fast enough for anything beyond 1080p
[16:15:40 CEST] <BtbN> 1080p60 to be precise
[16:20:06 CEST] <BtbN> philipl, https://github.com/FFmpeg/FFmpeg/compare/master...BtbN:master it's getting somewhere.
[16:21:10 CEST] <iive> wasn't glibc memcpy at some point implemented to copy from back to front, because on atom cpu it is faster? i remember some memcpy vs memmove issues
[16:21:41 CEST] <philipl> BtbN: nice stuff.
[16:22:02 CEST] <jkqxz> BtbN: It is much faster for me. I will be able to test this later today; maybe if you could share how you are testing we could work out where the discrepancy is coming from.
[16:22:20 CEST] <philipl> BtbN: that tex ref stuff might work to get a linear pointer to the texture.
[16:40:56 CEST] <philipl> BtbN: not sure how I work out the alignment though
[16:51:22 CEST] <cone-183> ffmpeg 03Matthieu Bouron 07master:091915165118: lavc/mediacodecdec: fix size variable shadowing in ff_mediacodec_dec_decode
[17:12:17 CEST] <BtbN> philipl, work out the alignment?
[17:14:44 CEST] <philipl> BtbN: GL texture -> 2D array -> device pointer
[17:14:59 CEST] <philipl> Copying to that memory will require an alignment and it won't be 256
[17:15:27 CEST] <BtbN> 256 is definitely enough for that.
[17:16:03 CEST] <philipl> The texture is already laid out in memory. If you blindly use 256, it'll be wrong
[17:17:14 CEST] <BtbN> but that function takes care of that?
[17:17:30 CEST] <philipl> How could it. That information gets discarded
[17:18:06 CEST] <BtbN> you give it the width and height in the ARRAY_DESCRIPTOR
[17:18:11 CEST] <BtbN> And the number of channels
[17:18:19 CEST] <philipl> I start with a GL Texture with some alignment. I map it to a CUarray with internally tracked alignment. I bind the array to a texref (with internal alignment). I get the linear pointer from the texref and that's it.
[17:18:49 CEST] <philipl> the memcpy2d needs to know the alignment to suceed.
[17:19:06 CEST] <BtbN> You create an OpenGL Texture, get the CUtexref for it, call cuTexRefSetAddress2D, and you can use the texture.
[17:19:12 CEST] <philipl> No.
[17:19:59 CEST] <philipl> You create the texture. You then use interop to get a CUarray, then use cuTexRefSetArray, then you use cuTexRefGetddress
[17:20:16 CEST] <philipl> You can't 'get' a texref from a GL texture.
[17:21:17 CEST] <philipl> The punchline is that if I define an external buffer pool of these things, I can't tell cuvid what the alignment is.
[17:24:29 CEST] <philipl> The API is based around asking for buffers of a given size, where the hwcontext decides on alignment. But I can't provide GL texture backed buffers on that basis. I have to create them based on frame dimensions and they have whatever alignment GL gives them.
[18:47:06 CEST] <cone-183> ffmpeg 03Carl Eugen Hoyos 07master:d2af93ac1608: configure: Also try -mstack-alignment for clang,
[19:17:40 CEST] <cone-183> ffmpeg 03James Almer 07master:9b8ac526f6b2: avformat/matroskaenc: don't write an empty Colour master element
[19:17:41 CEST] <cone-183> ffmpeg 03James Almer 07master:a4044498f777: avformat/matroskadec: check for more reserved values on some Colour elements
[19:38:50 CEST] <jamrial> ubitux: your fate clients have been reporting problems with fate-aic for days now
[19:39:09 CEST] <jamrial> which is weird since no other client does
[19:39:51 CEST] <ubitux> i guess that's the bitflip thing
[19:40:03 CEST] <ubitux> didn't occur much lately though
[19:40:21 CEST] <ubitux> i disabled one disk from the raid, maybe i should switch disk to test
[19:40:25 CEST] <ubitux> give me a moment
[19:41:32 CEST] <ubitux> 78945f998c63b69be7cf84380c08bc39 fate/fate-suite/aic/small_apple_intermediate_codec.mov
[19:41:36 CEST] <ubitux> yup. yet again.
[22:32:40 CEST] <cone-988> ffmpeg 03James Almer 07master:d41aeea8a64b: avformat/matroskaenc: print debug message with cluster offsets only if the output is seekable
[22:32:40 CEST] <cone-988> ffmpeg 03James Almer 07master:4e3bdf729a80: avformat/matroskaenc: always use a dynamic buffer when writting clusters
[22:32:40 CEST] <cone-988> ffmpeg 03James Almer 07master:6724525a1576: avformat/matroskaenc: write a CRC32 element on each Cluster
[22:32:40 CEST] <cone-988> ffmpeg 03James Almer 07master:3b189fae7328: avformat/matroskaenc: write a CRC32 element on SeekHead
[22:32:40 CEST] <cone-988> ffmpeg 03James Almer 07master:79248795d4af: avformat/matroskaenc: write a CRC32 element on Cues
[22:32:40 CEST] <cone-988> ffmpeg 03James Almer 07master:87ce2595de2c: avformat/matroskaenc: write a CRC32 element on Tracks
[22:32:40 CEST] <cone-988> ffmpeg 03James Almer 07master:eccefece616e: avformat/matroskaenc: write a CRC32 element on Chapters
[22:32:41 CEST] <cone-988> ffmpeg 03James Almer 07master:4687240d52b3: avformat/matroskaenc: write a CRC32 element on Attachments
[22:32:42 CEST] <cone-988> ffmpeg 03James Almer 07master:650e17d88b63: avformat/matroskaenc: write a CRC32 element on Tags
[22:32:43 CEST] <cone-988> ffmpeg 03James Almer 07master:3bcadf822711: avformat/matroskaenc: write a CRC32 element on Info
[23:43:17 CEST] <cone-988> ffmpeg 03James Almer 07master:711bfb33df4e: avformat/matroskaenc: add an option to disable writting CRC32 elements
[00:00:00 CEST] --- Fri Oct 7 2016
1
0
[00:12:40 CEST] <locuraaa> Hello
[00:13:05 CEST] <locuraaa> someone online?
[00:15:50 CEST] <TikityTik> locuraaa: no one here is online
[00:16:14 CEST] <locuraaa> why?
[00:16:45 CEST] <locuraaa> i have some questions about ffmpeg in centos
[00:16:48 CEST] <locuraaa> instalatio
[00:16:51 CEST] <locuraaa> instalation
[00:17:13 CEST] <TikityTik> use your package manager to install it
[00:18:32 CEST] <locuraaa> im use yum
[00:18:42 CEST] <locuraaa> but, some filter's not work good
[00:18:44 CEST] <teratorn> lol wut, ffmpeg has 70 specific audio filters, and 167 video filters. libav has 17 audio filters and 43 video filters... I had no idea there was that big a discrepancy nowadays
[00:19:09 CEST] <teratorn> is this just funny or am i doing it wrong
[00:19:18 CEST] <llogan> it is not you
[00:19:34 CEST] <llogan> they were never big into cherry-picking
[00:21:07 CEST] <llogan> locuraaa: you should just ask whatever questions you have and someone may answer if they have an answer. but you may have to be patient
[00:21:29 CEST] <teratorn> oh and Debian isn't brain damage anymore... sorry just getting the news... it's been a while since I worked with video stuffs
[00:25:16 CEST] <locuraaa> ok, thak you loogan
[00:25:39 CEST] <locuraaa> llogan
[00:26:53 CEST] <locuraaa> i go to compile ffmpeg last time, if not work, i drop the question xD
[00:40:12 CEST] <locuraaa> for someone ...
[00:40:19 CEST] <locuraaa> i have this error, [AVFilterGraph @ 0xaced40] No such filter: '' Error opening filters!
[00:40:32 CEST] <locuraaa> but not say me what filter is with error
[00:40:46 CEST] <locuraaa> and i excecute
[00:41:01 CEST] <microchip_> locuraaa: use static ffmpeg - https://www.johnvansickle.com/ffmpeg/
[00:41:12 CEST] <locuraaa> ffmpeg -i http://xxx.com/files/youtube-video/xxxx-cut1475679274.mp4 -vf 'transpose=0,transpose=0,,crop=350:196:0:0,pad=width=350:height=196:x=0:y=0:color=#000000' /xxx/xxx/public_html/files/post/xxx-1475679279.gif
[00:41:29 CEST] <iive> locuraaa: the ",," in there... is wrong
[00:41:43 CEST] <locuraaa> yes, y delete doble ,,
[00:41:54 CEST] <locuraaa> and excecute well but not build file
[00:42:39 CEST] <locuraaa> iive or microchip_
[00:42:49 CEST] <locuraaa> you have tutorial for install static ffmpeg?
[00:43:14 CEST] <microchip_> locuraaa: download the tarball, extract and run. that's all
[00:43:33 CEST] <iive> locuraaa: why ?
[00:44:08 CEST] <locuraaa> ok ;)
[00:44:19 CEST] <locuraaa> iive, for try
[00:44:24 CEST] <locuraaa> new verion
[00:44:26 CEST] <locuraaa> version
[00:44:27 CEST] <microchip_> locuraaa: remove the ' in your filter chain, it's not needed
[00:44:57 CEST] <microchip_> do -vf filter,filter and not -vf '......'
[00:46:00 CEST] <iive> why do you have 2 transpose=0 in there? don't they cancel each other?
[00:46:30 CEST] <microchip_> iive: transpose=0 rotates 90°, adding a second one does 180°
[00:46:40 CEST] <iive> nope
[00:48:05 CEST] <locuraaa> ok, now i have no error!
[00:49:05 CEST] <locuraaa> thank you microchip and iive and llogan
[00:49:11 CEST] <microchip_> iive: right, it's transpose=1 that does it
[00:49:21 CEST] <iive> :)
[00:49:34 CEST] <iive> locuraaa: go on, what is the error?
[00:50:08 CEST] <locuraaa> ",," and ' maybe
[00:50:21 CEST] <locuraaa> because i delete that and all work well
[00:50:51 CEST] <iive> oh. good
[00:51:08 CEST] <llogan> locuraaa: consider using palettegen and paletteuse filters for GIF output
[00:53:51 CEST] <locuraaa> perfect, thanks llogan! ;)
[00:56:24 CEST] <Mazhive> hi guys i wanne stream my webcam to youtube but it seems you tube does not recieve the data or my script is not working .. i can't seem to find out what the problem is...https://paste.fedoraproject.org/444497/08173147
[00:56:38 CEST] <Mazhive> my script
[00:58:43 CEST] <Mazhive> or - http://pastebin.com/j5VNKRS0
[00:59:47 CEST] <llogan> Mazhive: we can't provide help here for scripts. only unscripted, actual ffmpeg commands.
[01:00:48 CEST] <llogan> see http://trac.ffmpeg.org/wiki/EncodingForStreamingSites
[01:01:48 CEST] <Mazhive> oke still in plain cmd line its not working..
[01:09:13 CEST] <Mazhive> oke just a sec..
[01:24:29 CEST] <Mazhive> her the code and the output http://pastebin.com/2Rdx2fet
[01:24:32 CEST] <Mazhive> here
[01:25:00 CEST] <Mazhive> after the last line it sits and starts counting frames etc..
[01:26:05 CEST] <klaxa> that usually means it's running and working
[01:27:23 CEST] <llogan> 2.8.8 is old. i thought you downloaded a build?
[01:27:37 CEST] <llogan> oh, that was another guy
[01:31:11 CEST] <llogan> you forgot -maxrate. why threads 6 instead of letting it decide by default? you repeated some options
[01:31:36 CEST] <Mazhive> so leave the threads
[01:31:53 CEST] <Mazhive> - maxrate what should that be ..
[01:31:59 CEST] <llogan> see the link i provided
[01:36:57 CEST] <Mazhive> oke for now ill be using 3000k and it should work how ever youtube seems to not recieve the data
[01:37:33 CEST] <Mazhive> strangely when i use google hangout and stream it that way it works..
[01:44:19 CEST] <Mazhive> 2.8.8 is the latest on fedora 23
[01:45:07 CEST] <llogan> https://johnvansickle.com/ffmpeg/
[01:46:22 CEST] <Mazhive> when i do not want to stream audio how can i achieve that just take the commands for audio out ?/
[01:47:16 CEST] <llogan> your input and output have no audio
[01:50:18 CEST] <llogan> you probably *need* audio for youtube
[01:50:29 CEST] <llogan> even if it is silent which ffmpeg can do
[01:55:25 CEST] <Mazhive> oke tried 3.1.4 same output youtube initialy is trying to work on the stream and gives me good health but after a few seconds it tells me it is not recieving data
[01:56:16 CEST] <Mazhive> ffmpeg seems to work ok as the frame counter is running
[01:56:41 CEST] <llogan> make sure your network upload rate can handle what you're outputting
[01:59:04 CEST] <Mazhive> have just tested with speedtest it s a upload of 1.11Mbps
[01:59:15 CEST] <Mazhive> not much but it should work.
[02:00:08 CEST] <Mazhive> i normaly use google hangout and it can stream perfectly 720p
[02:00:54 CEST] <llogan> you're using -b:v 2500k
[02:39:40 CEST] <Mazhive> ive chenged it to 1500k still.. youtube is not recieving data
[02:39:46 CEST] <Mazhive> changed
[03:34:28 CEST] <s0126h> what is best lossy audio codec for music and what is best lossy audio codec for speech/talkradio
[11:51:36 CEST] <JonG> If I have two input DASH (or other) streams coming from two separate cameras, and I want to send one of them to an output stream, switching between the two inputs with a variable, is that something I could do with ffmpeg? Or ffserver? I would be fully in control of input and output.
[12:01:36 CEST] <furq> JonG: https://ffmpeg.org/ffmpeg-filters.html#streamselect_002c-astreamselect
[12:06:21 CEST] <JonG> Thanks furq, that looks promising. Do you know if that is something you can set dynamically from outside the ffmpeg process? Or once the filter is set up to switch streams at 5s in, you cannot change it?
[12:08:31 CEST] <furq> you can send command to filters on stdin
[12:08:32 CEST] <furq> hit c
[12:09:07 CEST] <furq> there's probably something fancy you can do with /proc/$pid/fd/0 or tmux send-keys to make it simpler
[12:11:25 CEST] <JonG> OK, thanks, I'll do some experimenting and get back to you if I have more questions :)
[12:50:28 CEST] <DasMoeh> Hi, when i decode a packet with avcodec_decode_video2() it takes around 0.05 ms with ffmpeg 2.8. When i do the same linking against 3.1.4, then it takes 10 ms. Has someone an idea, why it's so slow?
[13:24:48 CEST] <thebigbean> Is there anyway to export VirtualDubs deshaker with ffmpeg? Want to export as ffv1
[14:18:39 CEST] <platzhirsch> Can you set a bigger buffer length in ffmpeg when reading a RTMP stream from the nginx-rtmp module? I have troubles finding out if that would actually change the behavior of what's send down to the RTMP server
[16:03:19 CEST] <acamargo> hello. someone using segment filter here? I'm capturing a live sdi feed with a decklink card and I need to output 1 minute mp4 (h264/acc) files. When I join the files on adobe premiere sometimes I get clicks on audio or frame drop on video
[16:04:45 CEST] <acamargo> this is my script http://pastebin.com/QBafS65U
[16:23:44 CEST] <microchip_> pb acamargo
[16:23:53 CEST] <microchip_> acamargo: we don't support scripts here
[16:40:10 CEST] <acamargo> microchip_, ?
[16:40:28 CEST] <acamargo> microchip_, I pasted the script to appreciation
[16:40:55 CEST] <acamargo> microchip_, it's the ffmpeg command with all the options I'm using
[16:47:05 CEST] <Chloe> microchip_: it's literally just the command in that paste
[16:49:29 CEST] <jam___> Anyone there ??
[16:50:00 CEST] <jam___> Want to know about ffmpeg paramtres settings for 720p display
[16:50:07 CEST] <jam___> its laggy too much
[16:50:21 CEST] <jam___> i m streaming to fb using fblive
[16:50:42 CEST] <jam___> can someone guide me about the paramatres settings
[16:51:41 CEST] <jam___> I have 5 to 6 mb connection speed and using screenCapture to record
[16:55:47 CEST] <DHE> what do you mean laggy?
[16:56:33 CEST] <c_14> He's gone
[16:57:56 CEST] <DHE> yeah, just missed him
[17:16:00 CEST] <ZucZero> He msgd me also...
[18:43:09 CEST] <intijk> hello
[18:43:27 CEST] <intijk> can someone tell me the change log version number secret?
[18:43:42 CEST] <intijk> in the APIChanges file
[18:43:54 CEST] <intijk> 2015-07-27 - lavc 56.56.100 / 56.35.0 - avcodec.h
[18:44:01 CEST] <intijk> for example , has such a line
[18:44:25 CEST] <intijk> 56.56.100 is the version of libavcode
[18:44:39 CEST] <intijk> what is the version number 56.35.0 for?
[18:50:16 CEST] <Kadigan> Just a guess, but do those libs come in x86 and x64 flavors?
[18:52:35 CEST] <teratorn> is there a quick way to extract the frame number at a given time index?
[19:12:07 CEST] <kepstin> teratorn: nope. to do it, you have to count frames until you get to the one at the time you want.
[19:12:16 CEST] <kepstin> (if the video is constant fps, you can sometimes calculate it tho)
[19:21:22 CEST] <teratorn> kepstin: neither the container nor encoded video packets have actual frame numbers in them, eh?
[19:21:42 CEST] <kepstin> teratorn: nope.
[19:22:06 CEST] <teratorn> well anyway, I don't care about the actual frame number, I just need to `loop' a single frame at a given time offset, but I think I figured it out using two chained `trim' filters to select and loop only a single frame
[19:23:17 CEST] <teratorn> e.g. ffmpeg -f lavfi -i testsrc2 -vf trim=start=1.0,trim=start_frame=0:end_frame=1 out.mp4
[19:23:30 CEST] <teratorn> nicely cuts a single frame :)
[19:26:30 CEST] <teratorn> to loop it, ffmpeg -f lavfi -i testsrc2 -vf trim=start=1.0,trim=start_frame=0:end_frame=1,loop=50:size=1:start=0 out.mp4
[19:27:21 CEST] <dagg> Greetings, I'm working on a program that needs to capture screen in c, I've tried to look for more info on how to prepare the capture and pass specific options to it, is there any info that I might have missed I can use?
[19:27:24 CEST] <teratorn> my problem now is I'm forced to use an fps filter, since loop doesn't know how to loop only deals in frame counts not in time
[19:29:54 CEST] <aceslowman> All I need to do is take a video in ProRes 422 and make it so it has a keyframe on every frame. What would I want to run? I tried ffmpeg -g 1 -i {source} {dest}
[19:30:57 CEST] <DHE> -g 1 comes after the input
[19:31:01 CEST] <DHE> or rather, before the output
[19:31:27 CEST] <aceslowman> Ah, thank you! And with that, it will retain all of the other properties of the input file?
[19:31:28 CEST] <DHE> ffmpeg options are: ffmpeg [input1 options] -i input1 [input2 options] -i input2 [...] [output1 options] output1 [output2 options] output2 [...]
[19:31:56 CEST] <DHE> no, ffmpeg doesn't copy properties, beyond the obvious like framerate, width and height. the codec changes if you don't manually specify, etc
[19:32:43 CEST] <aceslowman> Ah, all good to know. I'm new to doing anything other than copying and pasting simple commands, thank you!
[19:38:37 CEST] <kubik> hi
[19:39:13 CEST] <teratorn> I'm really confused why this command encodes the entire input (all of in.mp4) in to the output, out.mp4, instead of just the 50 frames I'm looking for.. ffmpeg -i in.mp4 -filter_complex "[0:v]split=2[v0][v1];[v0]null;[v1]trim=start=1.0,trim=start_frame=0:end_frame=1,loop=50:size=1:start=0[v2]" -map "[v2]" out.mp4
[19:39:18 CEST] <kubik> i try to set up https://github.com/bakape/meguca on vps but i have problem with error while loading shared libraries: libavcodec-ffmpeg.so.56: cannot open shared object file: No such file or directory when running main file
[19:39:41 CEST] <kubik> i tried installing lasst version but i still get error
[19:40:15 CEST] <teratorn> kubik: libavcodec-ffmpeg.so.56 is not the normal name of the libavcodec library
[19:40:34 CEST] <teratorn> kubik: it doesn't have "-ffmpeg" stuck in it when you compile from source
[19:41:47 CEST] <kubik> so what i have to install? im not the best in it
[19:41:57 CEST] <teratorn> kubik: otherwise, if you compiled and linked against ffmpeg successfully, but this is just failing when you try to run it, then libavcodec-ffmpeg.so.56 isn't in your library search path
[19:42:25 CEST] <kubik> i tried editing config with /usr/local/lib
[19:43:31 CEST] <teratorn> kubik: it is not an ffmpeg problem, actually. good luck in other support channels. :)
[19:43:45 CEST] <kubik> ;_; okay
[19:50:19 CEST] <kubik> development libraries is normal package or something special?
[19:59:51 CEST] <furq> libavcodec-ffmpeg.so is the ubuntu transitional name iirc
[20:01:25 CEST] <furq> kubik: i guess you could try compiling that thing yourself
[20:01:40 CEST] <furq> idk if cgo hardcodes dependencies like that
[20:01:48 CEST] <kubik> also before when i got http://pastebin.com/p2CCQWkj from ffmpeg
[20:01:55 CEST] <furq> but it wouldn't surprise me if the static builds assume you're using the author's exact setup
[20:01:58 CEST] <kubik> compile ffmpeg or meguca?
[20:02:01 CEST] <furq> meguca
[20:02:05 CEST] <aceslowman> I'm not getting any working file from running this, do I still have something confused? ffmpeg -y -i please_small-driving-test.mov -keyint_min 1 please_keyframes.mov
[20:03:00 CEST] <furq> yeah you have libavcodec 57 and that binary expects 56 because that's what the author has on his dev machine
[20:03:22 CEST] <furq> you should probably file a ticket telling him that his linux binaries are worthless
[20:05:20 CEST] <kubik> great so its something what can work
[20:05:24 CEST] <furq> aceslowman: if you want 1-frame gops then you need -g and -keyint_min
[20:05:41 CEST] <furq> assuming -keyint_min is mapped to anything with that codec
[20:06:22 CEST] <furq> also that won't encode to prores, it'll encode to whatever the default for mov is
[20:06:25 CEST] <furq> which is h264
[20:06:56 CEST] <furq> you probably want -c:v prores
[20:09:56 CEST] <teratorn> I'm very very confused why the last 2 commands produce different outputs... I was hoping adding the split filter, the way I've done it, would not have any effect on the output... any clues? :) https://gist.github.com/tera-torn/86464e520f03ec5344a3bd2b2a8f3b81
[20:11:32 CEST] <teratorn> oh balls, it's putting 2 streams in the 2nd one :(
[20:11:44 CEST] Action: teratorn face-palms
[00:00:00 CEST] --- Fri Oct 7 2016
1
0