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

burek burek021 at gmail.com
Fri Jun 2 03:05:01 EEST 2017


[00:08:21 CEST] <ac_slater_> guys, is it possible to log certain parts of a pipeline with different levels?
[01:02:14 CEST] <HoDANG> Hello. Does anyone have a compiled ffmpeg build for Win32 or Win64 with libfdk_aac that they could share, please? I'm only need the .exe file. I would really appreciate the help. Thanks.
[01:05:53 CEST] <hotbobby> i have a question . im trying to figure out if there is a way i can take a mpeg2 stream and transcode it in real time
[01:06:16 CEST] <hotbobby> like ffmpeg would output a x264 or something on the other end, how do you deal with streams?
[01:07:08 CEST] <beandog> x264 can do that
[01:07:11 CEST] <beandog> realtime encoding
[01:07:21 CEST] <beandog> well, ffmpeg can obviously. -_-
[01:08:43 CEST] <furq> how much did you pay for that domain
[01:08:55 CEST] <hotbobby> furq: 40/yr for icann fees
[01:09:06 CEST] <furq> what a bargain
[01:09:11 CEST] <hotbobby> piss.io was taken :(
[01:09:18 CEST] <furq> i know the guy who owns piss.io
[01:09:28 CEST] <hotbobby> i, too, know jon hendren
[01:09:43 CEST] <furq> are you a devops thought leader too
[01:10:01 CEST] <hotbobby> no and really he isnt either. just a bad comedy writer
[01:10:44 CEST] <furq> you're just jealous of his domain acquisition skill
[01:11:37 CEST] <hotbobby> so im looking at stream input examples for ffmpeg. it would only end up giving me one flv or mkv or whatever as an output
[01:11:57 CEST] <hotbobby> ideally i would like to have it such that any number of clients can watch the encoded stream. does that mean a new transcode for every client?
[01:12:07 CEST] <furq> you can't use ffmpeg as a streaming server
[01:12:27 CEST] <furq> you'd need to feed the output to something which actually does that, like nginx-rtmp
[01:12:30 CEST] <hotbobby> okay, i need something else in addition then. but ffmpeg will work well for dealing with the gross mpeg2
[01:12:38 CEST] <hotbobby> yes thank you for your advice :)
[01:12:46 CEST] <furq> or use ffmpeg's hls muxer and just serve those directly
[01:12:54 CEST] <furq> assuming hls is good enough for what you're doing
[01:14:52 CEST] <furq> https://github.com/arut/nginx-rtmp-module/wiki/Directives#exec_pull
[01:14:54 CEST] <furq> i guess that's what you want
[01:16:35 CEST] <hotbobby> yup! and i can link the resulting flv to jwplayer or whatever
[01:16:50 CEST] <hotbobby> neat. i thought this would be a very difficult task
[01:24:36 CEST] <furq> if you don't want to use flash then nginx-rtmp will remux to hls for you
[01:24:51 CEST] <furq> which works in desktop browsers with https://github.com/video-dev/hls.js
[01:25:05 CEST] <furq> assuming you don't mind 20 seconds of latency
[01:36:31 CEST] <hotbobby> i would just encode it in such a way its ready for youtube but i dont think they like when you stream video games you didnt create yourself
[01:38:38 CEST] <hotbobby> this is exciting ffmpeg has so many options. i was worried i wouldnt be able to keep the 5.1 ac3 but it wont even touch the audio unless i tell it to 8-)
[01:51:48 CEST] <blue_misfit> hey gusy!
[01:52:06 CEST] <blue_misfit> I've got a pathological DNxHD source that has some corruption or something equally nasty and when I transcode it I get a bunch of black video
[01:52:41 CEST] <blue_misfit> the source plays normally in VLC but jumps from 12 - 19 seconds, so VLC also sees the glitch
[01:52:49 CEST] <blue_misfit> how can I make ffmpeg abort with an error when it sees this?
[01:55:08 CEST] <blue_misfit> -err_detect explode didn't have any effect :(
[04:21:23 CEST] <ac_slater> hey guys, is there any downside to always calling av_interleaved_write_frame instead of av_write_frame?
[06:20:19 CEST] <ac_slater> also, if AVStream->coded access is deprecated, what do we use instead? The examples havent been updated
[06:21:11 CEST] <ac_slater> AVStream->codec *
[06:23:35 CEST] <ac_slater> are we supposed to use AVStream->codecpar now?
[06:31:35 CEST] <Bruutal> anybody know a good stock to invest on
[06:32:23 CEST] <ac_slater> Bruutal: get out of here with that
[06:32:33 CEST] <ac_slater> Bruutal: seriously leave us alone :(
[06:32:33 CEST] <Bruutal> huh
[06:32:50 CEST] <ac_slater> how many times did you ask #ffmpeg about that today?
[06:33:19 CEST] <Bruutal> why you so upset
[06:33:33 CEST] <ac_slater> you're wasting everyone's time man
[06:33:48 CEST] <ac_slater> unless you're just trolling or whatever, fine but how many times in one day?
[06:33:49 CEST] <Bruutal> not really
[06:34:09 CEST] <Bruutal> i am not, i am being serious
[06:34:17 CEST] <ac_slater> I was just in some channels that got hit pretty hard with spam so I'm angry at everyone
[06:34:22 CEST] <Bruutal> if no new people join this room, then i will stop
[06:34:25 CEST] <furq> i hear cocaine is a very good investment
[06:34:36 CEST] <ac_slater> Bruutal: ask some investment rooms, I know there are some
[06:34:43 CEST] <ac_slater> or somewhere else seriously
[06:34:45 CEST] <Bruutal> ac_slater  which ones?
[06:34:56 CEST] <Bruutal> furq  i don't do cocaine
[06:35:02 CEST] <ac_slater> Bruutal: i dont fucking know, use your smart investor brain and find some
[06:38:23 CEST] <ac_slater> furq: do you use libav* apis or do you stick to the command line tool?
[06:38:42 CEST] <furq> i've hardly touched the apis and i've not touched the new 3.x apis
[06:39:02 CEST] <ac_slater> furq: is there a nice changelog from 2.x to 3.x
[06:39:04 CEST] <ac_slater> ?
[06:39:33 CEST] <furq> i'm not aware of one for the libs
[06:39:41 CEST] <furq> the ffmpeg one just lists new features
[06:39:51 CEST] <ac_slater> yea all good
[06:40:01 CEST] <ac_slater> the deprecation warnings are ok for now
[06:40:35 CEST] <furq> the examples will be updated before deprecated apis are removed
[06:40:49 CEST] <furq> if that's of any consolation to you
[06:40:59 CEST] <ac_slater> ;) I'd hope so
[06:41:23 CEST] <furq> i'm going to stop pluralising "api" now
[06:44:52 CEST] <ac_slater> I never know which is correct
[06:56:34 CEST] <dystopia_> [srt @ 04dd01e0] Unsupported subtitles codec: dvb_teletext
[06:56:34 CEST] <dystopia_> Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
[06:56:38 CEST] <dystopia_> :(
[06:56:50 CEST] <dystopia_> anyone know of a cli app that will extract dvb subs?
[06:59:40 CEST] <furq> dystopia_: ffmpeg will do it with --enable-libzvbi
[07:00:47 CEST] <dystopia_> thanks furq
[07:01:49 CEST] <furq> assuming you actually mean dvb_teletext and not dvb_subtitle
[07:08:00 CEST] <Speed_> hi i am havving troubble installing FFmpeg
[07:08:01 CEST] <Speed_> https://hastebin.com/hipuhinize.lua
[07:08:34 CEST] <Speed_> so i came here
[07:08:41 CEST] <Speed_> how can i tell if its the latest version?
[07:09:25 CEST] <Speed_> when i try to install libx256 it says i have the latest version alreaddy 1.9.3
[07:09:34 CEST] <Speed_> 1.9-3*
[07:10:25 CEST] <Speed_> https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
[07:10:32 CEST] <Speed_> i am following these instructions
[07:12:50 CEST] <dystopia_> i have both formats furk
[07:13:01 CEST] <dystopia_> furq* depends on the broadcaster
[07:14:43 CEST] <ac_slater> Speed_: did you install the development package for libx265?
[07:14:50 CEST] <ac_slater> cause it looks like you didnt
[07:15:44 CEST] <Speed_> https://hastebin.com/unawereneh.sql
[07:16:09 CEST] <Speed_> i think so
[07:16:35 CEST] <ac_slater> do 'pkg-config --list-all | grep 265'
[07:16:58 CEST] <Speed_> x265                           x265 - H.265/HEVC video encoder
[07:17:10 CEST] <ac_slater> hmm that's fucky
[07:17:21 CEST] <Speed_> thats what?
[07:17:28 CEST] <ac_slater> fucky
[07:17:31 CEST] <ac_slater> something's weird
[07:17:39 CEST] <furq> Speed_: check config.log
[07:17:54 CEST] <ac_slater> maybe grep  config.log for pkg-config calls to x265 to see what it's actually trying
[07:18:36 CEST] <Speed_> where is this?
[07:18:47 CEST] <ac_slater> where you ran ./configure from
[07:19:31 CEST] <furq> just check the last 50 lines of ffbuild/config.log
[07:20:03 CEST] <furq> normally "not found using pkg-config" actually means some compiler check failed
[07:21:18 CEST] <Speed_> i cant see the config file
[07:21:42 CEST] <Speed_> i assume you mean  PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
[07:21:44 CEST] <Speed_> there
[07:21:56 CEST] <Speed_> $HOME/ffmpeg_build/lib/pkgconfig
[07:22:07 CEST] <Speed_> but i dont see the lib directory
[07:22:28 CEST] <ac_slater> Speed_: he's talking about config.log . Should be right next to 'configure'
[07:22:39 CEST] <furq> they moved it to ffbuild/ now
[07:22:40 CEST] <furq> for some reason
[07:22:42 CEST] <ac_slater> ooooh
[07:22:46 CEST] <ac_slater> damn sorry
[07:23:15 CEST] <Speed_> all i see in ffbuild is share
[07:25:46 CEST] <furq> did you already run make clean or something
[07:26:17 CEST] <Speed_> no
[07:27:02 CEST] <furq> is there a config.log anywhere in the build directory
[07:27:30 CEST] <Speed_> nope
[07:27:37 CEST] <furq> fun
[07:27:42 CEST] <furq> i guess rerun configure and see if it appears
[07:28:39 CEST] <Speed_> only speed at Asimov:~/ffmpeg_build/share/man/man1$ ls  nasm.1  ndisasm.1 exist
[07:29:06 CEST] <Speed_> didnt apear after running the config
[07:29:08 CEST] <furq> is this the source directory
[07:29:58 CEST] <Speed_> i ran the config from the ffmpeg_sources
[07:30:10 CEST] <furq> yeah it should be in there
[07:30:12 CEST] <furq> not ffmpeg_build
[07:31:01 CEST] <Speed_> theres a configure file in it
[07:31:06 CEST] <Speed_> with no file extention
[07:31:14 CEST] <furq> is there an ffbuild directory
[07:31:24 CEST] <Speed_> yes
[07:31:37 CEST] <Speed_> the log is there
[07:32:04 CEST] <Speed_> what im i looking for here?
[07:32:15 CEST] <furq> check the last 50 or so lines
[07:32:31 CEST] <furq> pastebin them if there's nothing obvious in there
[07:32:47 CEST] <Speed_> last line
[07:32:47 CEST] <Speed_> ERROR: x265 not found using pkg-config
[07:33:45 CEST] <Speed_> https://hastebin.com/ozukoxemoj.cpp
[07:34:15 CEST] <furq> /usr/bin/ld: cannot find -lnuma
[07:34:17 CEST] <furq> there's your problem
[07:34:21 CEST] <furq> install libnuma
[07:35:16 CEST] <ac_slater> maybe a bug should be filed to check for that?
[07:35:57 CEST] <Speed_> how do i get that?
[07:36:05 CEST] <Speed_> apt-get didnt find it
[07:36:18 CEST] <ac_slater> ugh
[07:36:24 CEST] <furq> libnuma-dev
[07:36:43 CEST] <furq> you might need to rebuild libx265 as well
[07:36:54 CEST] <furq> i imagine multithreading is broken if you built it without libnuma installed
[07:36:59 CEST] <ac_slater> yea
[07:37:33 CEST] <furq> it's probably better that ffmpeg always checks for that, since there's no good reason to build x265 without it
[07:37:41 CEST] <ac_slater> I always wondered why certain apps NEED libnuma... I guess they want to pin threads to cores or require a certain amount of physical cores
[07:39:12 CEST] <furq> actually i wonder if that's an x265 bug
[07:39:17 CEST] <furq> i assume -lnuma is coming from pkg-config
[07:39:35 CEST] <furq> but x265 sucks anyway so who cares
[07:40:35 CEST] <ac_slater> it's not
[07:40:52 CEST] <ac_slater> sadly apparently x265's pkgconfig file doesnt contain libnuma
[07:46:43 CEST] <Speed_> this is taking forever xD
[07:47:18 CEST] <thebombzen> "Speed_" this is taking forever
[07:47:19 CEST] <thebombzen> hm
[07:47:40 CEST] <Speed_> xD
[07:48:29 CEST] <Speed_> finnally
[07:48:54 CEST] <grublet> time to go to LUDACRIS SPEED
[07:51:12 CEST] <ac_slater> loll
[07:56:21 CEST] <ac_slater> alright guys, I have to ask. If I'm creating an mpegts mux context (avformat_alloc_output_context2(fmt, NULL, "mpegts", NULL") and I add an H.264 video stream to it manually via avformat_new_stream(fmt,..). Do I have to change the "video_codec" field in the AVOutputFormat? It currently is set to AV_CODEC_ID_MPEG2VIDEO
[07:56:32 CEST] <ac_slater> not sure if that value is used when I push packets into the muxer
[09:16:52 CEST] <Speed_> https://hastebin.com/opulejajim.sql
[11:51:20 CEST] <dystopia_> furq you still here
[11:51:42 CEST] <dystopia_> i found an app to extract my subs to .srt
[11:52:28 CEST] <dystopia_> now im doing "ffmpeg -i input.ts -i input.srt -c:v libx264 -an output.mp4
[11:52:58 CEST] <dystopia_> but it's trying to process the old dvb_subtitle and failing
[11:53:14 CEST] <dystopia_> -
[11:53:15 CEST] <dystopia_> Stream mapping:
[11:53:16 CEST] <dystopia_>   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
[11:53:16 CEST] <dystopia_>   Stream #0:2 -> #0:1 (? (?) -> ass (ssa))
[11:53:16 CEST] <dystopia_> Decoder (codec dvb_teletext) not found for input stream #0:2
[11:53:18 CEST] <dystopia_> :(
[11:54:01 CEST] <dystopia_> i guess i can mux it in after the encode :|
[12:03:54 CEST] <SolidusAbi> Hi, has someone experience with a VC1 encoder? I know VC1 is not supported in FFMPEG but I need some encoder which let me to work from command line... and you are my last hope.
[12:38:08 CEST] <Threads> dystopia_ have you tried using -sn
[12:41:46 CEST] <dystopia_> Threads i want the .srt subs to be included
[12:42:01 CEST] <dystopia_> but i don't want the dvb_teletext and dvb_subtitle to be
[12:42:18 CEST] <dystopia_> im just muxing it in after encode so it's ok, just a bit annoying
[12:43:26 CEST] <c_14> dystopia_: -map 0:v -map 0:a -map 1:s
[12:44:41 CEST] <dystopia_> thanks c_14 :)
[12:45:44 CEST] <zerodefects> In the AVCodecContext data structure, what is the difference between 'thread_type' and 'active_thread_type'.  The latest trunk docs don't elaborate too much.
[12:47:55 CEST] <DHE> you can request one thread type, but ffmpeg is allowed to disregard it and do something different. maybe threading isn't enabled, maybe the number of threads select ended up as 0, etc.
[12:49:29 CEST] <zerodefects> Thanks. Which one of those data members should I set? Both?
[12:49:44 CEST] <DHE> set thread_type
[12:51:01 CEST] <zerodefects> And if there is a logic problem where low delay is set in conjunction with threading, is the library capable of auto-correcting that and determing the best flags to use?
[12:53:00 CEST] <zerodefects> ...just curious how much checking I need to do (ie. is the checking library side versatile).
[13:07:46 CEST] <SolidusAbi> Hi, has someone experience with a VC1 encoder? I know VC1 is not supported in FFMPEG but I need some encoder which let me to work from command line... and you are my last hope.
[13:28:17 CEST] <zerodefects> I can't get the mpeg2video encoder to call my custom execute/execute2 functions.  I'm setting the thread_count to '4' and enabled threading for slice frames but to no avail.
[15:14:57 CEST] <MarioMey> Hi, there. I'm trying to compile Blender, it asks for ffmpeg path. In previous Ubuntu distro (14.04), it was on/opt/lib/ffmpeg... but now, I don't find it. I want to clear some doubts, let's start with the first one:
[15:16:36 CEST] <MarioMey> I installed Ubuntu-Mate 16.04... and then, kdenlive. In 14.04, I had libav, I used to use avconv. I know that I have that ffmpeg fork... but now, I'm not sure if I have ffmpeg and avconv as a kind of symbolic link of ffmpeg (because I have both commands) or viseversa. How should I know that?
[15:17:25 CEST] <MarioMey> ffmpeg -version:
[15:17:28 CEST] <MarioMey> ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
[15:17:41 CEST] <MarioMey> avconv -version
[15:17:47 CEST] <MarioMey> ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
[15:17:50 CEST] <MarioMey> ffmpeg, so?
[15:22:06 CEST] <MarioMey> Yes, it is like that.
[15:22:15 CEST] <MarioMey> Now... where is ffmpeg path?
[15:23:00 CEST] <DHE> if you're compiling blender, it wants the ffmpeg dev packages. headers and the like.
[15:25:03 CEST] <MarioMey> DHE: what should the package name be?
[15:25:41 CEST] <MarioMey> I'm viewing packages list in Synaptic... and I can't find ffmpeg-dev or similar. Also... I see a lot of livab libraries... :/
[15:25:50 CEST] <MarioMey> Don't understand why...
[15:27:17 CEST] <MarioMey> I have libav-tools as transitional package... but I have libavcodec-extra, libavcodec-ffmpeg-extra56, livabcodec-ffmpeg56, etc...
[15:27:19 CEST] <MarioMey> ??
[15:35:37 CEST] <BtbN> You need the ones ending in -dev
[15:35:51 CEST] <BtbN> No idea if there is just ffmpeg-dev or something
[15:36:02 CEST] <BtbN> And you shouldn't need to specify any special dir, as it will be in the default search path
[16:54:24 CEST] <ac_slater_> hey guys
[16:54:59 CEST] <ac_slater_> I'm struggling to create an input context and COPY one of the streams to an output context. Is this supported at all?
[16:55:23 CEST] <JEEB> well as far as I know remuxing is supported
[16:55:32 CEST] <JEEB> you will have to demux first of course
[16:55:55 CEST] <ac_slater_> JEEB: right, I just want to basically copy all of the stream structure
[16:56:09 CEST] <ac_slater_> I'll remux of course
[16:56:38 CEST] <JEEB> under docs there should be examples
[16:56:43 CEST] <JEEB> and then a remux example even
[16:56:44 CEST] <ac_slater_> I'm just not about semantics when it comes to adding a stream to an AVFormatContext without using avformat_new_stream
[16:57:02 CEST] <ac_slater_> would be awesome if there was avformat_add_stream(AVStream *)
[16:57:15 CEST] <JEEB> there are various special cases of course :P but in general you have to do something similar to the remux example
[16:57:41 CEST] <ac_slater_> I see. It's not updated to the 3.x api yet but it should be easy
[16:57:44 CEST] <ac_slater_> thanks!
[16:58:44 CEST] <JEEB> I have not checked how good this thing is but by its name it handles remuxing http://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/examples/remuxing.c;h=59594181a709014244d390ddc43c0d729883afab;hb=HEAD
[16:59:08 CEST] <ac_slater_> oh awesome
[16:59:37 CEST] <ac_slater_> that's kinda what I was getting at
[16:59:43 CEST] <ac_slater_> was hoping there was a wrapper function ;)
[16:59:54 CEST] <ac_slater_> but awesome, thanks JEEB
[17:15:58 CEST] <zerodefects> In the AVCodecContext, any tips on what parameters I should set to get the mpeg2 video encoder to generate a bitstream as close to CBR as possible for use in say DVB/ATSC.  There are a few parameters: bit_rate, rc_buffer_size, rc_min_rate, rc_max_rate, and there are some additional VBV settings too.
[17:16:25 CEST] <ac_slater_> zerodefects: just really quick, you should first get `ffmpeg` (the command line tool
[17:16:29 CEST] <ac_slater_> ) to do what you want
[17:16:39 CEST] <ac_slater_> cause it'll save you lots of headache
[17:17:41 CEST] <zerodefects> Ok. I'll try that. Thanks for the tip.  Should it be relatively easy to translate that into code?
[17:17:46 CEST] <ac_slater_> zerodefects: yea
[17:18:04 CEST] <ac_slater_> mostly just passing in an AVDictionary into the output context
[17:18:06 CEST] <JEEB> libx264 has a thing to add padding if needed
[17:18:17 CEST] <JEEB> no idea how to make real CBR with mpeg2 encoder
[17:18:30 CEST] <kepstin> ac_slater_: with the ffmpeg built-in codecs, it should pretty much just require setting bit_rate = rc_min_rate = rc_max_rate
[17:18:42 CEST] <zerodefects> Ah ok. AVDictionary sounds the way to go.
[17:18:43 CEST] <ac_slater_> kepstin: on the packet? context?
[17:18:51 CEST] <kepstin> ac_slater_: on the context
[17:19:05 CEST] <ac_slater_> ah right, I wasnt sure it had ALL of the options exposed outwardly
[17:19:21 CEST] <kepstin> ac_slater_: and obviously you also need to set a rc_buffer_size value that's reasonable
[17:20:10 CEST] <ac_slater_> kepstin: right (I see he says AVCodecContext not FormatContext)
[17:20:59 CEST] <kepstin> I'm not sure whether you also have to put an option on the mpegts muxer to get it to pad packets out
[17:21:31 CEST] <zerodefects> kepstin: You've hit the nail on the head, because I was setting all those including rc_buffer_size and then running into warnings:
[17:21:41 CEST] <zerodefects> [mpeg2video @ 0x55dea1b8eaa0] Automatically choosing VBV buffer size of 224 kbyte
[17:21:41 CEST] <zerodefects> [mpeg2video @ 0x55dea1b8eaa0] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate!
[17:22:08 CEST] <kepstin> oh, oops, I was responding to the wrong person, sorry zerodefects :)
[17:22:12 CEST] <zerodefects> So I was curious if there was a formula I could use :)
[17:22:28 CEST] <zerodefects> No worries
[17:22:55 CEST] <kepstin> zerodefects: it's not usually something you make up, but rather something specified by the standards for your target...
[17:23:24 CEST] <zerodefects> So in the case of DVB, I ought to read the relevant docs?
[17:26:17 CEST] <kepstin> as far as a rule of thumb, a good start for vbv values if you don't know otherwise is to multiply the bitrate by the keyframe interval
[17:27:27 CEST] <kepstin> (e.g. with 5mbit/s video, 2s keyframe interval, then 10mbit vbv buffer size is probably a reasonable value)
[17:27:44 CEST] <grublet> how could a buffer be "too large"?
[17:27:49 CEST] <kepstin> but the exact value depends on the minimum specifications of the decoder
[17:27:55 CEST] <grublet> or am i misunderstanding the reason of a buffer?
[17:28:22 CEST] <kepstin> grublet: it's not that the buffer is too large, it's that one of the fields in the video header "vbv_delay" can't represent values for a vbv buffer over a certain size
[17:28:32 CEST] <grublet> ah okay
[17:28:37 CEST] <grublet> that makes sense then
[17:29:44 CEST] <zerodefects> Thanks kepstin. Good to know.  I'll investigate this further.  Are there any OSS tools to check the video bitrate in my TS stream?
[17:29:54 CEST] <kepstin> zerodefects: i dunno
[17:30:44 CEST] <ac_slater_> zerodefects: to what extent?
[17:30:46 CEST] <kepstin> btw, if you're getting that vbv warning when it picked a buffer size of only 224kbit (~1.7mbit), then you must be using a rather low bitrate? Make sure you're setting the bitrate in bits, not kbits :)
[17:31:01 CEST] <ac_slater_> `mediainfo` or `ffprobe -show_streams` can show SOME things
[17:31:26 CEST] <zerodefects> Ok thanks 'ac_slater'
[17:31:43 CEST] <zerodefects> Yeah, I've set bitrate to '600000'
[17:32:04 CEST] <zerodefects> So that's 600 kbps, right?
[17:32:14 CEST] <zerodefects> it is very low!
[17:32:17 CEST] <kepstin> lol, 600kbit mpeg2 is probably not enough for even sd video :/
[17:33:14 CEST] <zerodefects> The problem I had is that I was getting dropped packets running Ubuntu in virtual box, so I had reduced it drastically.
[17:33:17 CEST] <zerodefects> :(
[17:38:21 CEST] <kepstin> the automatically chosen vbv setting there ^^ is the correct value for DVD video, which is typically around 5-10mbit/s
[17:39:20 CEST] <kepstin> note that DVD video uses an annoying low vbv buffer size because it's designed for really old, simple playback hardware. As a result, high motion stuff is basically impossible to encode for DVD such that it looks decent :/
[17:39:25 CEST] <grublet> the vbv is based on the data rate of the disc itself, right?
[17:40:12 CEST] <kepstin> grublet: the vbv is based on the size of a ram buffer in the player hardware
[17:40:29 CEST] <zerodefects> Ah ok
[17:40:37 CEST] <grublet> kepstin: ok cool
[17:41:35 CEST] <kepstin> for more modern usage, where you have pcs doing playback with effectively unlimited ram, you pick vbv values by multiplying the internet connection speed by the maximum amount of delay before video playback starts
[17:42:48 CEST] <zerodefects> So let's say I'm going with 1Mbit/s in video, what would be a sensible vbv_delay?
[17:43:35 CEST] <kepstin> zerodefects: it depends on your target player and how the video is being transferred to them.
[17:44:22 CEST] <zerodefects> Ok.  Should the vbv_delay be set through 'AVCPBProperties' struct?
[17:44:50 CEST] <kepstin> zerodefects: you shouldn't be setting vbv delay, it should be automatically calculated from the stream bitrate and rc buffer size
[17:45:07 CEST] <zerodefects> Ah right. That's some relief :)
[17:45:11 CEST] <DHE> vbv_delay is only used by a small number of mpeg-based encoders anyway. libx264 and the like don't use it
[17:45:46 CEST] <zerodefects> Thanks guys.
[17:46:37 CEST] <zerodefects> Last field I had a question about was 'bit_rate_tolerance'.
[17:46:56 CEST] <zerodefects> Can I just set that to equal bit_rate?
[17:48:23 CEST] <kepstin> delay is just be buffer size divided by bitrate. That formula is often used backwards, e.g. "I want 2s of delay on a 5mbit/s stream, so I use 10mbit buffer"
[17:49:39 CEST] <zerodefects> Ah ok. That's raises another question which I'll come back to after 'bit_rate_tolerance'
[17:51:07 CEST] <kepstin> I dunno what a good value for tolerance is, but based on the code, somewhere around 5-20 times the bitrate seems reasonable? It'll override it to 5 * bitrate if you set it too small.
[17:51:24 CEST] <kepstin> I dunno how much effect it has in "cbr" encoding
[17:53:44 CEST] <zerodefects> Do you expect that the encoder may pad the bitstream if I try set CBR?
[17:54:29 CEST] <ac_slater_> JEEB: quick question. Not sure if this is intended, but since AVCodecParameters doesnt have a time_base field, it seems like to make 2 streams appear identical, I have to copy stream->time_base manually. Is this intended?
[17:55:59 CEST] <ac_slater_> It would kinda make sense since I have to make a new stream to copy into anyway, might as well set some fields while I'm at it.
[17:56:04 CEST] <kepstin> zerodefects: I don't know if it will or not, you might have to set additional parameters on the muxer
[17:57:18 CEST] <zerodefects> Correct me if I'm wrong, but there is stuffing that gets added in the TS and then padding that can be inserted at the elementary stream level?
[17:57:55 CEST] <kepstin> zerodefects: I don't really do cbr stuff, I don't know :/
[17:58:34 CEST] <zerodefects> No worreis, you've been of great help :)
[17:59:08 CEST] <zerodefects> The last question going back to vbv_delay.  If I set low delay flag, does that effectively change/alter the vbv_delay in the encoder?
[18:00:24 CEST] <kepstin> I don't think they have anything to do with each-other
[18:00:53 CEST] <kepstin> I suspect it has something to do with frame ordering, stream syntax, and B-frames, but not really sure.
[18:01:39 CEST] <kepstin> probably just completely disables b-frames
[18:02:06 CEST] <zerodefects> Okay. I'll add that to my list to investigate. Thanks for your time and help.
[18:02:20 CEST] <kepstin> you almost certainly don't want to disable b frames :)
[18:03:02 CEST] <kepstin> only case that might be useful is stuff like extremely low latency video conferencing and whatnot
[18:04:11 CEST] <zerodefects> yeah, I had noticed the flag so I was curious what affect it had on video and how it worked.
[19:12:02 CEST] <marsrover> hi. im using ``ffprobe -v quiet -of flat -show_streams file.mkv`` to list all the streams in a file. is there any way i can alter the commandline to only show me the audio streams?
[19:14:29 CEST] <marsrover> actually i got it.. add ``-select_streams a``
[19:14:35 CEST] <marsrover> thnks marsrover
[19:18:41 CEST] <thebombzen> marsrover: you should -v error which will still print errors to stderr
[19:19:02 CEST] <thebombzen> printing errors might be useful if you're trying to cobble something together for hanksville
[19:20:07 CEST] <marsrover> dont think i need to bother. all im checking is if any audio tracks have >2 channels. just need a yes/no result.. or yes/not-yes
[19:21:43 CEST] <thebombzen> marsrover: either way, you're looking for streams.stream.N.channels
[19:21:47 CEST] <thebombzen> where N is the stream index
[19:22:25 CEST] <thebombzen> which does depend on which index you use
[19:23:37 CEST] <FlyingSolomon> Hello!
[19:30:53 CEST] <thebombzen> FlyingSolomon: hello
[19:55:10 CEST] <FlyingSolomon> I'm a bit confused actually, is there an updated api tutorial\example for ffmpeg? I've been trying to play with it to no a vail
[19:56:26 CEST] <FlyingSolomon> everything that I found seems to be deprecated
[20:00:33 CEST] <FlyingSolomon> (For the c library, not the cli tool)
[20:05:06 CEST] <wlfgang> i know of the dranger tutorial, seems reasonably up to date: http://dranger.com/ffmpeg/
[20:05:59 CEST] <FlyingSolomon> from what I tried it seems to use a lot of deprecated stuff
[20:06:34 CEST] <atomnuker> FlyingSolomon: https://github.com/atomnuker/cyanrip/blob/master/src/cyanrip_encode.c should be usable as an example
[20:06:56 CEST] <FlyingSolomon> Ok, thanks :)
[20:06:57 CEST] <atomnuker> it doesn't use anything deprecated and only encodes samples to file
[20:07:07 CEST] <ac_slater_> guys please help. https://paste.debian.net/958800/ ... When I try to mux AVPackets into an mpegts output context, I see non-monotonic timestamp warnings
[20:07:30 CEST] <ac_slater_> oh wait
[20:08:04 CEST] <ac_slater_> I know the issue...
[20:18:52 CEST] <ac_slater_> alright guys, I do have a serious issue
[20:19:35 CEST] <ac_slater_> (pasting)
[20:22:11 CEST] <wlfgang> i have the same question as FlyingSolomon more or less, what is there besides ffplay.c to illustrate a basic media player?
[20:28:02 CEST] <thebombzen> wlfgang: ffplay.c is not a good example of a basic media player because it accepts a lot of ffmpeg-style options like -vf, -codec, etc.
[20:28:32 CEST] <thebombzen> you'd have to basically ignore all the crap and then you could use it as an example
[20:32:58 CEST] <wlfgang> my thoughts exactly, ffplay is pretty tough to wade through
[20:33:19 CEST] <wlfgang> i have used the library for streaming, but now i am mainly interested in how to control playback speed for files
[20:34:05 CEST] <thebombzen> wlfgang: mpv has a --speed= option, you could check out the code for that
[20:34:23 CEST] <thebombzen> I'm not sure entirely how they do it. It's easier for video probably
[20:34:43 CEST] <wlfgang> thanks, i'll check that out
[20:35:34 CEST] <thebombzen> wlfgang: a primitive video player method is to use timestamps of the input and use some sort of milisecond sleep
[20:35:45 CEST] <thebombzen> to play at halfspeed, you'd just double the sleeps
[20:35:52 CEST] <thebombzen> audio is harder, and you'd probably have to use a filter
[20:36:20 CEST] <thebombzen> a hacky-solution would be to pretend that 48 kHz raw audio is 24 kHz, but I'm not entirely sure how well that'll go down
[20:36:48 CEST] <thebombzen> ah nvm that won't work, that'll cut the pitch in half, ignore me
[20:38:06 CEST] <kerio> what does it even mean to slow down audio
[20:38:56 CEST] <thebombzen> halve the tempo
[20:39:07 CEST] <kerio> oh ;o
[20:39:23 CEST] <kerio> ye ok but what about things that are not musical instruments
[20:39:38 CEST] <thebombzen> it just means play it at half speed essentially
[20:40:05 CEST] <kerio> oh so with halved pitch :3
[20:40:10 CEST] <thebombzen> audio is essentially just a wave, so if you stretch the wave by a factor of 2x, it would halve the pitch
[20:40:16 CEST] <thebombzen> the hard part is to do that without halving the pitch
[20:40:37 CEST] <kerio> you mean slow it down and then do unnatural things to double the pitch
[20:40:50 CEST] <thebombzen> that would be a primitive way of doing it
[20:40:57 CEST] <thebombzen> there are more advanced algorithms to achieve the result directly
[20:41:16 CEST] <thebombzen> but this is theoretically what you are trying to accomplish, yes, but due to the discrete nature of digital audio it's not easy
[20:41:58 CEST] <thebombzen> but yes you essentially want to play it half as fast but without dropping everything an octave
[20:44:01 CEST] <FlyingSolomon> for what I know changing audio speed without changing pitch is considerably difficult
[20:44:02 CEST] <FlyingSolomon> https://en.wikipedia.org/wiki/Audio_time-scale/pitch_modification
[20:44:14 CEST] <furq> http://sbsms.sourceforge.net/
[20:44:18 CEST] <furq> that's what audacity uses
[20:44:30 CEST] <furq> presumably that second section actually means something to some people
[20:45:43 CEST] <FlyingSolomon> Ah they interpolate, interesting
[20:46:23 CEST] <kerio> it's even awkward to imagine how to make it work
[20:46:41 CEST] <kerio> for anything that's not a finite sum of sinusoids
[20:47:04 CEST] <FlyingSolomon> well If you want real time I don't know it it's the right method, it seems expensive to me
[20:47:28 CEST] <thebombzen> I've found that in practical listening tests, af_rubberband performs best
[20:47:40 CEST] <thebombzen> at least better than af_atempo in libavfilter
[20:47:49 CEST] <thebombzen> it just uses the librubberband external library
[20:56:44 CEST] <kepstin> note that ffmpeg does have a filter that uses librubberband
[20:57:29 CEST] <kepstin> er, wait, that's what you said :)
[20:57:52 CEST] <furq> well if it didn't perform better then it'd have been removed
[21:28:24 CEST] <CFS-MP3> ffprobe  -show_frames -select_streams v 01-BBC1.EastEnders.ts -show_entries frame=pict_type,key_frame,pkt_pts -print_format compact=print_section=1|more
[21:28:25 CEST] <CFS-MP3> displays
[21:28:37 CEST] <CFS-MP3> frame|key_frame=0|pkt_pts=1091033010|pict_type=Bside_data|side_data_type=Active format description|side_data_size=1
[21:28:44 CEST] <CFS-MP3> how can I get rid if that side_data?
[22:29:11 CEST] <ac_slater_> alright guys maybe this is a quick one. I have and mpegts muxer that supports some DATA formats. If I define some time_base for my data stream, what's the av* function to "increment" timestamps? ie - the PTS/DTS/DURATION deltas
[22:42:09 CEST] <Hink> Are there any ffmpeg GUI tools that would help me quickly go through a large amount of video clips and trim them without re-encoding?
[22:42:28 CEST] <Hink> Currently I have to preview the clip in VLC then cut it via the command line with ffmpeg.
[22:42:38 CEST] <Hink> It's a little tedious.
[22:44:33 CEST] <AndreKR> Hi
[22:44:38 CEST] <AndreKR> I'm trying to encode using h264_qsv, but I'm getting "Error initializing the encoder: invalid video parameters (-15)".
[22:44:44 CEST] <AndreKR> Command line: ffmpeg -i src.mp4 -c:v h264_qsv -preset:v faster -q 5 -look_ahead 0 -loglevel debug test.mp4
[22:44:54 CEST] <AndreKR> Full log output: https://pastebin.com/BNZyK0KA
[22:44:58 CEST] <AndreKR> MediaSDK system analyzer: https://pastebin.com/kfxBQSkH
[22:48:28 CEST] <AndreKR> That's with the Zeranoe nightly, but the same happens with 3.3.1.
[22:55:29 CEST] <ac_slater_> furq: how much do you know about video clocks ;)
[23:07:23 CEST] <ac_slater_> Alright maybe a better question. When I call `av_write_frame(ctx, packet);` what's the best way to increment the packet's PTS? And do I have need to rescale the timebase from packet to muxer OR does it do that automatically via av_write_frame?
[23:30:16 CEST] <tiagobarreto> I'm using the ffmpeg in my iOS and android projects but I have a issue: https protocol not found, recompile FFmpeg with openssl, gnutls or securetransport enabled. I already to set the gnutls in project but the message don't appear and I cant to play my video using the https. Why?
[23:31:51 CEST] <ac_slater_>  tiagobarreto get it all compiled and working on linux/OSX first, then find what's different about the toolchains/target
[23:34:01 CEST] <tiagobarreto> @ac_slater_ It's possible to check if the ffmpeg compiled is using the gnutls?
[23:34:08 CEST] <ac_slater_> yea
[23:34:16 CEST] <ac_slater_> couple things
[23:34:29 CEST] <ac_slater_> tiagobarreto: running `ffmpeg` shows the ./configure line in the header
[23:35:43 CEST] <tiagobarreto> @ac_slater_ thanks :)
[23:35:43 CEST] <ac_slater_> tiagobarreto: or `ffmpeg -buildconf`
[23:36:13 CEST] <tiagobarreto> It's better.
[23:36:15 CEST] <ac_slater_> also look at the top of `ffmpeg -h`... you'll see -devices, -formats, etc
[23:36:30 CEST] <ac_slater_> I think you'll find http support/capabilities SOMEWHERE in there
[23:37:30 CEST] <tiagobarreto> hum.. great!
[23:38:25 CEST] <ac_slater_> ffmpeg -protocols should list http if it works
[23:39:00 CEST] <tiagobarreto> I think that the problem ocours because the ffmpeg installed in my machine is different used for https://github.com/Bilibili/ijkplayer library. So, when I compiled the ffmpeg the project in ios and android not updated.
[23:39:38 CEST] <ac_slater_> maybe, I'm not sure
[23:39:45 CEST] <ac_slater_> I think you can figure it out though ;)
[23:39:55 CEST] <tiagobarreto> Because the ffmpeg -protocols listed the https.
[23:40:46 CEST] <tiagobarreto> Yes, Thanks for help @ac_slater_ :)
[00:00:00 CEST] --- Fri Jun  2 2017


More information about the Ffmpeg-devel-irc mailing list