[Ffmpeg-devel-irc] ffmpeg.log.20180723
burek
burek021 at gmail.com
Tue Jul 24 03:05:02 EEST 2018
[00:16:24 CEST] <TekuConcept> Would I even need a codec for a raw binary stream (not video or audio)?
[00:27:45 CEST] <DHE> if it's not decodable, then no. but how you handle it is up to you
[00:30:25 CEST] <TekuConcept> Background: I want to de/mux an additional raw stream with my video and audio streams.
[04:07:35 CEST] <Phr33d0m> hello everyone, I'm trying to cut a part from a flac audio like this: `ffmpeg -y -i "$episode-source-audio.flac" -ss $EDSTART -c copy "$episode-source-audio-ED.flac"` and it works, but the -ED.flac file carries the duration of the original file - any ideas?
[15:02:25 CEST] <jonmall> Hi everyone, I am encoding a number of progressive WMVs into an MP4s. There is a small number of files where conversion is failing and I was wondering if anyone can help with pinpointing what is causing the failure. The command used is as follows: `ffmpeg -i input.wmv -c:v libx264 -c:a aac -strict -2 -b:a 32000 -map 0 -preset veryfast output.mp4`. I am using ffmepg version 3.4.2. I have tried using a simple command like `ffmpeg -i inp
[15:02:59 CEST] <jonmall> get the same result, so I don't think it's related to the options being added but maybe I'm missing some options to help with the conversion
[15:04:04 CEST] <jonmall> I have a log of a conversion attempt in a txt file if required. I have also attempted the conversion using -ignore_unkown and -err_detect ignore_err but still the same result
[15:08:40 CEST] <DHE> yes, please pastebin one such example including full commandline for invocation and full output including errors.
[15:08:53 CEST] <DHE> if there's any private information you can 'XXXX' over it, but don't remove anything
[15:12:28 CEST] <jonmall> Ok I've created a pastebin entry with the log: https://pastebin.com/F5zKVbmE
[15:14:06 CEST] <jonmall> This is the command `ffmpeg -y -i XXX.wmv -err_detect ignore_err -c:v libx264 -c:a aac -strict -2 -b:a 32000 -map 0 -preset veryfast test.mp4 2> log1.txt `
[15:22:08 CEST] <anill> Hi ffmpeg developers, i need a small help , this post https://pastebin.com/04nqwLMZ contain the ffmpeg that i run to stitch 2 mp4 files into single a single mp4 file and also the output that i get on command prompt.
[15:22:45 CEST] <anill> What i need is i should only get the output on command prompt if its error, i mean if ffmpeg is not able to stitch videos.
[15:25:03 CEST] <jonmall> Updated the pastebin content to include the command https://pastebin.com/qe33mQvw
[15:31:27 CEST] <Blacker47> jonmall, your input has 3 video streams and if i see it right ffmpeg is complaining about the last two (0:6 and 0:9). not sure if it is because the format of the streams or because it wan't create output with multiple video streams. you maybe need anyway only one?
[15:34:07 CEST] <Blacker47> jonmall, if you need multiple videostreams you maybe need another container or the map command must look different. also "Error while decoding stream #0:9: Operation not permitted" could mean, there is DRM in that stream.
[15:38:36 CEST] <Blacker47> also i see a few errors more in the output. sounds like the file is partially damaged.
[15:39:06 CEST] <Blacker47> but don't relly on my answers, i'm relatively new to ffmpeg.
[15:39:07 CEST] <jonmall> so we use -map 0 so it maps all of them into the progressive MP4, we then convert it to a fragmented MP4 for streaming. It's worked fine for other WMVs with multiple video streams. I think the issue is probably related to one of the audio streams.
[15:39:28 CEST] <jonmall> check line 165 in the second link
[15:39:39 CEST] <jonmall> 695*
[15:39:57 CEST] <jonmall> [aac @ 0x7fa65102f400] Input contains (near) NaN/+-Inf Audio encoding failed
[15:40:32 CEST] <jonmall> Yes we believe the file might be partially damaged, I was trying to find a way if the damaged parts can be skipped.
[15:40:49 CEST] <Blacker47> yes it the last error and i thing it leading to encoding stop..
[15:41:18 CEST] <Blacker47> but i don't see that audio-stream is affected.
[15:42:40 CEST] <jonmall> let me attempt on a file that I know is working and check whether I see any operation not permitted on the video streams.
[15:43:37 CEST] <Blacker47> maybe you could try extract audio-streams one by one to let say waves and see if it works and if not if you can force the extract or repair with other tools (e.g. after raw-extract).
[15:46:58 CEST] <jonmall> ok so still seeing the operation not permitted message for working content. So that doesn't seem top stop the encoding process
[15:47:41 CEST] <jonmall> I'll try and extract each stream separately and see which one fails.
[16:00:30 CEST] <th3_v0ice> Why am I getting this message while generating the rtmp stream: "Could not find codec parameters for stream 1 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
[16:00:30 CEST] <th3_v0ice> Consider increasing the value for the 'analyzeduration' and 'probesize' options". What options should i change for this to work. I am using the API.
[16:01:00 CEST] Last message repeated 1 time(s).
[16:01:22 CEST] <th3_v0ice> Sorry for double posting.
[16:12:49 CEST] <DHE> probing works by actually decoding a few frames of the stream with some limitations. like it said, it doesn't know what the parameters for the stream are because it didn't get the necessary data within the limits
[16:14:53 CEST] <th3_v0ice> DHE: Ok, thanks, but where can i set the analyzeduration and probesize?
[16:15:15 CEST] <th3_v0ice> Are they located in the AVCodecContext or AVStream?
[16:16:00 CEST] <DHE> this is you calling avformat_find_stream_info()
[16:16:08 CEST] <DHE> they're options for this function
[16:17:38 CEST] <DHE> so... I guess AVFormatContext fields...
[16:19:25 CEST] <th3_v0ice> DHE: I am streaming to twitch and twitch is not showing any picture so I am capturing the stream with streamlink and piping the output to ffmpeg, which is showing the error message. So I am not setting something correctly in AVFormatContext or AVStream or AVCodecParameters because I am not using AVCodecContext. The question is what?
[16:34:55 CEST] <th3_v0ice> And for some reason AVStream->AVCodecContext is never initialized but AVCodecParametes is. Is this expected behaviour?
[16:39:01 CEST] <DHE> the newest version of ffmpeg doesn't use AVCodecContext anymore. the container only requires data from AVCodecParameters. you should not use the AVCodecContext inside any AVStreams anymore
[16:40:34 CEST] <th3_v0ice> Ok, I am using FFmpeg 4.0.
[16:58:50 CEST] <thinkpad2000> Hi, I have an opencv webcam capture and want to stream it over http. how to approach this?
[17:03:51 CEST] <Cracki> everyone: ignore the opencv part until it actually involves opencv
[17:07:46 CEST] <Cracki> what are your requirements to quality and quantity?
[17:07:58 CEST] <Cracki> resolution, frame rate, data rate, latency,
[17:08:06 CEST] <Cracki> how many receivers
[17:08:11 CEST] <Cracki> how many video sources (one?)
[17:08:47 CEST] <Cracki> what video streaming servers have you found on the internet already?
[17:11:16 CEST] <bencoh> .41
[17:11:27 CEST] <Cracki> you don't say
[17:11:39 CEST] <bencoh> woops, nevermind :)
[17:13:27 CEST] <thinkpad2000> Cracki, can i use something like https://github.com/yhirose/cpp-httplib
[17:27:54 CEST] <Cracki> I don't know, can you?
[17:28:07 CEST] <Cracki> use ready-made software, don't reinvent
[17:28:19 CEST] <Cracki> starting from HTTP is still a lot of pointless work
[17:30:31 CEST] <Hello71> just use machine learning to do the streaming
[17:30:32 CEST] <Hello71> lol
[17:32:56 CEST] <bruce-> +1 helpful
[17:33:04 CEST] <Mavrik> O.o
[17:33:35 CEST] <Cracki> tldr: use nginx with some HLS module
[17:33:42 CEST] <Cracki> latency <5 sec possible
[17:34:24 CEST] <Cracki> looks like the rtmp module does hls
[17:35:14 CEST] <Cracki> also this http://nginx.org/en/docs/http/ngx_http_hls_module.html
[17:36:24 CEST] <Mavrik> Yeah, nginx-rtmp-module is rather nice for simple streaming
[17:37:14 CEST] <Cracki> it ingests data from ffmpeg. I think the "commerical subscription" nginx-hls module might not.
[17:37:31 CEST] <Cracki> cba to look it up
[17:39:07 CEST] <Cracki> nvm, the rtmp module opens a listening port where you can stream your video to (ffmpeg can do it, vlc prolly too)
[17:39:49 CEST] <Cracki> https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-nginx/
[18:02:09 CEST] <monty_> ffmpeg -i elks1807.m3u8 hey.mp3
[18:02:22 CEST] <monty_> ffmpeg version N-91492-g9cb3d8fcb7-tessus Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 9.1.0 (clang-902.0.39.2) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopen
[18:03:11 CEST] <monty_> oh sorry I see I should paste it https://pastebin.com/9Z3Sn7Rw
[18:03:37 CEST] <monty_> I'm trying to take my .m3u8 playlist and convert all the pieces into one mp3 file
[18:05:21 CEST] <monty_> will I really need to follow https://trac.ffmpeg.org/wiki/Concatenate#differentcodec and create a huge command line representing all the files in my playlist?
[18:07:00 CEST] <Cracki> did you try this? $ ffmpeg -i foo.m3u8 -c copy foo.mp3
[18:07:14 CEST] <Cracki> maybe ffmpeg knows what to do with playlists
[18:07:31 CEST] <Cracki> this indicates that it does https://gist.github.com/tzmartin/fb1f4a8e95ef5fb79596bd4719671b5d
[18:10:10 CEST] <ariyasu> monty_ could you paste your m3u8 to paste bin
[18:10:32 CEST] <ariyasu> it's possible you need to edit it, so the .ts segments point to the remote.ts segments
[18:11:29 CEST] <Cracki> monty_, look at youtube-dl, might solve your problem as-is
[18:14:20 CEST] <monty_> heres the playlist https://pastebin.com/jP1e3zZd
[18:15:02 CEST] <ariyasu> ok so yeah thats not gonna work
[18:15:33 CEST] <ariyasu> there are multiple mp3 files in the m3u8, and there is no path/url to them
[18:16:11 CEST] <monty_> well, the path is in the filename like Kyle/Traditional/Orquestra Tipica Victor OTV/OTV_Ventarron.mp3
[18:16:30 CEST] <ariyasu> if you downloaded your m3u8 from http://example.com/playlist.m3u8 you would need to edit the url infront of every item in the m3u8
[18:16:34 CEST] <monty_> the m3u8 playlist plays with players like VLC or foobar2000
[18:16:57 CEST] <ariyasu> do you have the files locally in a folder along with the m3u8?
[18:17:07 CEST] <monty_> ah yes the files are all local
[18:17:17 CEST] <monty_> and subfolders of the folder the playlist is in
[18:17:21 CEST] <ariyasu> ok
[18:17:40 CEST] <ariyasu> then you want to merge them all into one big mp3?
[18:18:01 CEST] <ariyasu> your better doing concat with ffmpeg
[18:18:07 CEST] <ariyasu> copy /b will probably work also
[18:18:27 CEST] <monty_> yes, I would like one big mp3
[18:18:42 CEST] <ariyasu> https://trac.ffmpeg.org/wiki/Concatenate
[18:19:11 CEST] <monty_> ok, so basically write a little script to turn the playlist into a long list of arguments to ffmpeg
[18:19:15 CEST] <ariyasu> https://en.wikipedia.org/wiki/Copy_(command)
[18:19:22 CEST] <ariyasu> yes
[18:19:57 CEST] <ariyasu> you can do it with "dir /b" command to get a list of items
[18:20:04 CEST] <ariyasu> then give that list to ffmpeg to concat
[18:20:54 CEST] <monty_> ffmpeg -i tandas.m3u8 -c copy hey.mp3 gave the same error "tandas.m3u8: Invalid data found when processing input"
[18:22:50 CEST] <monty_> copy /b probably won't work since some files are m4a not mp3
[18:23:30 CEST] <monty_> thanks, I'll write a little script to construct the concat commands I need
[18:23:59 CEST] <Hello71> ffmpeg doesn't support playlists
[18:24:01 CEST] <Hello71> *shrug*
[18:26:10 CEST] <BtbN> Well, it kind of does for HLS
[18:26:33 CEST] <Cracki> monty's gone :/
[18:26:51 CEST] <Cracki> well, perl/awk parsing a m3u8 and generating a file list isn't much trouble
[18:27:12 CEST] <Cracki> and with <(...), doesn't leave tempfiles either
[18:28:03 CEST] <Cracki> C:\> copy /B
[18:28:15 CEST] <Cracki> I wish I hadn't seen that
[18:32:02 CEST] <Hello71> I guess
[19:06:30 CEST] <mont3z> I was able to make the RTP/HEVC demuxer using custom IO work but I had to comment out a call to ff_rtp_check_and_send_back_rr. I don't want to send back any RR because I'm just using a custom IO. Is there a way to disable RR?
[21:13:39 CEST] <TekuConcept> AVStream is freed when freeing AVFormatContext correct? I don't call 'av_free' directly on an AVStream
[21:14:26 CEST] <JEEB> I'd think so yes
[21:14:44 CEST] <DHE> normally you don't av_malloc an AVStream in the first place anyway
[21:15:07 CEST] <TekuConcept> no no no, avformat_new_stream
[21:15:32 CEST] <TekuConcept> (sorry for the confusion)
[22:19:02 CEST] <benergy> Hey guys, I have no idea whether this is the right place to ask, but hopefully it is. I use Natron and I encounter lags/stutter/artefacts on rendering. I was wondering whether this may be related to the ffmpeg library and I could get some help here?
[22:22:03 CEST] <Cracki> wat is natron
[22:22:07 CEST] <Cracki> is that a chemical?
[22:22:30 CEST] <benergy> Cracki: That as well, but in my case, it's a node based compositing software.
[22:23:03 CEST] <Cracki> node as in nodejs, or node as in tree/graph?
[22:23:15 CEST] <benergy> Tree/Graph-
[22:23:36 CEST] <Cracki> and how could that be ffmpeg's fault?
[22:26:50 CEST] <benergy> I've been trying to wrap my head around that. Ffmpeg is working in the background to decode the source files. It seems as though the reading process is flawed, because when I render out a project, the result contains lags and sometimes artefacts.
[22:26:53 CEST] <Hello71> obviously ffmpeg = rendering
[22:28:29 CEST] <benergy> Hello71: Natron displays differend ffmpeg libraries in the reader node (libavformat, libavcodec, libavtil, libswscale), so I thought that maybe I could follow that clue...
[22:28:37 CEST] <benergy> *different
[22:32:00 CEST] <Cracki> show a screenshot or soemthing
[22:32:05 CEST] <Cracki> don't explain, show
[22:32:23 CEST] <Cracki> and figure out how to submit a bug report to whoever made this "natron"
[22:34:17 CEST] <Cracki> >Natron is named after Lake Natron in Tanzania which, according to Natron lead programmer Alexandre Gauthier provides "natural visual effects" by preserving its dead animals.
[22:35:13 CEST] <benergy> Cracki: That I didn't know
[22:35:30 CEST] <Cracki> they have a web forum, but no irc channel? heresy!
[22:36:11 CEST] <benergy> Cracki: They do, but it's a very poorly maintained piece of software, they seemingly only have one dev right now
[22:36:49 CEST] <Cracki> i see no reason to believe there ever was anyone other than the initial developer
[22:37:13 CEST] <benergy> https://natron.fr/team/
[22:37:25 CEST] <Cracki> very likely the thing messes up some synchronization of buffers
[22:37:35 CEST] <Cracki> you still haven't shown us what the bug looks like
[22:38:17 CEST] <benergy> Well, it's hard to show in a screenshot. The playback just stutters, meaning it freezes for a split second and then skips a few frames.
[22:38:34 CEST] <Cracki> is that all?
[22:38:49 CEST] <Cracki> what about the artefacts you mentioned?
[22:39:36 CEST] <benergy> Under some circumstances it was accompanied by blocky artefacts, yes. I'll try to reproduce and post the image shortly.
[22:39:39 CEST] <benergy> But I already suspected it's not in the library, but how Natron handles it.
[22:40:01 CEST] <Cracki> source footage resolution, frame rate, bit rate?
[22:40:12 CEST] <Cracki> how many cpu cores are used?
[22:42:55 CEST] <benergy> The source file is a 25fps 3840x2160 mp4 file, 73018 kb/s. I have an i7-7700 CPU, and I believe all four cores were used.
[22:43:25 CEST] <Cracki> then there was no hardware decoding used
[22:43:34 CEST] <Cracki> and your cpu seems overwhelmed
[22:44:19 CEST] <Cracki> 4 cores? does that thing not have hyperthreading?
[22:44:28 CEST] <Cracki> did you disable that?
[22:44:35 CEST] <Cracki> if so, why?
[22:44:48 CEST] <Cracki> what codec?
[22:44:51 CEST] <Cracki> mp4 is just a container
[22:45:08 CEST] <benergy> Yes, it does, and no, it was on. I meant to say that all 8 virtual cores were working.
[22:45:52 CEST] <benergy> The codec was h264.
[22:46:02 CEST] <Cracki> figure out how to use hw for decoding
[22:46:14 CEST] <Cracki> likely intel's qsv is possible
[22:46:36 CEST] <benergy> I also have two graphics cards available.
[22:47:39 CEST] <Cracki> what you saw is the decoding going too slow, so it drops frames, or skips some postprocessing steps
[22:47:53 CEST] <benergy> The whole issue got a little better when I set "render in a separate process", yet I'm still looking for an option to tell the software that it can take however much time it needs with each frame, so the the end result is not affected.
[22:48:06 CEST] <Cracki> consider this a bug of "natron". they should have figured out how to hw-decode h.264
[22:48:06 CEST] <benergy> Cracki: That seems exactly right.
[22:48:24 CEST] <Cracki> is that program for real time only?
[22:48:27 CEST] <Cracki> what does it even do?
[22:50:27 CEST] <benergy> It's for visual effects and compositing, somewhat like After Effects. It allows a decent realtime preview, but I had hoped it wouldn't render every little frame drop into the end result.
[22:50:57 CEST] <Cracki> >end result
[22:51:18 CEST] <Cracki> does this software not distinguish between realtime playback and "rendering"?
[22:53:11 CEST] <benergy> Yes, it does. You set up your node tree and when you're done, you can forward the output to a "write node", thus writing it to the hard drive. Using my SSD instead of HDD also improved the performance, but it seems the program doesn't handle the render process right.
[22:53:58 CEST] <benergy> Do graphics cards also do hardware-decoding? Maybe I can get them to do the work
[22:54:39 CEST] <Cracki> of course they do
[22:54:44 CEST] <Cracki> that's why I recommended it
[22:55:12 CEST] <Cracki> intel processors even include hardware decoders
[22:55:32 CEST] <Cracki> (the xeons maybe not, they don't have intel graphics, but the desktop ones)
[22:57:47 CEST] <benergy> Cracki: Thanks a lot. I guess I'll need to contact the dev on this one, maybe there's a way to reconfigure the program in order to speed up the pipeline
[22:58:11 CEST] <Cracki> there is. they just need to choose the right decoder
[22:58:33 CEST] <Cracki> automatic choice is unlikely to pick a hardware decoder
[22:59:09 CEST] <Cracki> and they must fix the decoding complexity reduction
[22:59:19 CEST] <Cracki> for live preview, that's ok, but not for rendering to file
[23:11:39 CEST] <benergy> Cracki: Thanks again! That was really helpful!
[23:16:55 CEST] <TekuConcept> Trying to create a raw (non-video/audio) AVFrame. May I share a pastebin link here and see if I'm on the right track?
[23:26:49 CEST] <TekuConcept> https://pastebin.com/Ja5Y2R9h - Based on code in libavutil/frame.c; I'm just not sure which variables are pertinent to my needs.
[23:30:48 CEST] <Mavrik> TekuConcept, you should really use av_frame_get_buffer()
[23:32:39 CEST] <Mavrik> Tachyon, basically set format, width and height and then call av_frame_get_buffer to get all other structures properly initialized
[23:33:09 CEST] <TekuConcept> Mavrik
[23:33:09 CEST] Last message repeated 1 time(s).
[23:33:09 CEST] <TekuConcept> Mavrik, av_frame_get_buffer() is for audio and video frames. I need a frame for raw non-audio non video data
[23:33:29 CEST] <TekuConcept> (sorry about that - kiwiirc)
[23:34:05 CEST] <Mavrik> ah.
[23:34:16 CEST] <Mavrik> TekuConcept, look at what the get_buffer things do for video/audio and follow it: https://www.ffmpeg.org/doxygen/3.4/frame_8c_source.html#l00172
[23:34:28 CEST] <Mavrik> (with modifications you need of course)
[23:35:51 CEST] <TekuConcept> right, I followed get_audio_buffer() since it was the closest thing to what I needed. The pastebin I shared is the result. Just want to double check.
[23:38:30 CEST] <Mavrik> I'd say extended_data should probably be NULL
[23:38:53 CEST] <Mavrik> No idea why get_audio_buffer sets it to the data pointer O.o
[23:39:11 CEST] <Mavrik> ohh
[23:39:14 CEST] <Mavrik> Ok.
[23:39:18 CEST] <Mavrik> TekuConcept, looks fine yeah :)
[23:40:08 CEST] <TekuConcept> Awesome; Guess the next step is to actually see if my data de/muxes between devices.
[23:40:14 CEST] <TekuConcept> Thank you!
[23:47:26 CEST] <poutine> Hello I work at a company that uses ffmpeg for transcoding. I am launching virtual containers to do transcoding, and wondered if there is a point where scaling up virtual resources stop mattering as much for h264/aac transcoding
[23:53:05 CEST] <Cracki> what specifically are you asking
[23:53:26 CEST] <Cracki> have you done any measurements?
[23:55:12 CEST] <poutine> Cracki, I have not done any benchmarking or anything, was hoping for just anecdotal advice
[23:56:39 CEST] <Cracki> there's amdahl's law, which you need to be aware of if you deal with parallel computing at all
[23:57:38 CEST] <Cracki> there's the tradeoff between batch processing (throughput over latency) vs "realtime" (latency over throughput)
[23:57:45 CEST] <poutine> Ah nice, I was not aware of that Cracki
[23:57:49 CEST] <Cracki> just basics
[23:57:57 CEST] <Cracki> you're asking too generally
[23:58:04 CEST] <Cracki> get some numbers.
[23:58:33 CEST] <poutine> I think you're right, I think I need to do some testing of my own, and figure out that slider for cost <-> quickness and any other bottlenecks I might run into
[23:58:45 CEST] <Cracki> if you make money with transcoding video, you should
[23:59:41 CEST] <Cracki> the extremes would be:
[23:59:53 CEST] <Cracki> 32 concurrent 1-thread encodes
[23:59:58 CEST] <Cracki> 1 encode using 32 threads
[00:00:00 CEST] --- Tue Jul 24 2018
More information about the Ffmpeg-devel-irc
mailing list