Quantcast
Channel: Active questions tagged ubuntu - Stack Overflow
Viewing all articles
Browse latest Browse all 6435

FFMPEG get stuck when transcoding too many FLAC audios

$
0
0

I'm currently using Editly for create some videos from code, but there are some bugs with ffmpeg(latest).

Nothing returns after hours processing(460 audios files during test), I already tried with flac, aac, libshine and libmp3lame encoders, already tried a different a ffmpeg version(static).

From the editly code, I already changed the ffmpeg query, slicing in chunks(75), the results were:

  • 0, 75 ok
  • 0, 80 stuck
  • 75, 150 ok
  • 150, 225 ok
  • 225, 300 stuck
  • 300, 375 ok
  • 375, 450 ok

Stuck screen(directly from terminal):

built with gcc 13 (Ubuntu 13.2.0-23ubuntu4)  configuration: --pkg-config-flags=--static --prefix='~/ffmpeg/dyn' --extra-cflags='-I/~/ffmpeg/dyn/include' --extra-ldflags='-L/~/ffmpegffmpeg/dyn/lib' --bindir='~/ffmpeg/dyn/bin' --enable-debug=3 --enable-vaapi --enable-libvorbis --enable-libvpx --enable-gpl --cpu=native --enable-opengl --enable-libfdk-aac --enable-libx264 --enable-nonfree --enable-libmp3lame --enable-libshine  libavutil      59. 21.100 / 59. 21.100  libavcodec     61.  6.100 / 61.  6.100  libavformat    61.  3.104 / 61.  3.104  libavdevice    61.  2.100 / 61.  2.100  libavfilter    10.  2.102 / 10.  2.102  libswscale      8.  2.100 /  8.  2.100  libswresample   5.  2.100 /  5.  2.100  libpostproc    58.  2.100 / 58.  2.100Input #n..., flac, from 'editly-tmp-.../clip...-audio.flac':  Metadata:    encoder         : Lavf61.3.104  Duration: 00:01:53.62, start: 0.000000, bitrate: 1 kb/s  Stream #458:0: Audio: flac, 48000 Hz, stereo, s32 (24 bit)Stream mapping:  Stream #n1:0 (flac) -> acrossfade  Stream #n2:0 (flac) -> acrossfade  Stream #n3:0 (flac) -> acrossfade  Stream #n...:0 (flac) -> acrossfade  acrossfade:default -> Stream #0:0 (libshine)  Press [q] to stop, [?] for help

if I quit then returns:

[fc#0 @] [ao0->#0:0 @] No filtered frames for output stream, trying to initialize anyway.Output #0, mp3, to 'editly-tmp-.../audio-concat.mp3':  Metadata:    TSSE            : Lavf61.3.104  Stream #0:0: Audio: mp3, 48000 Hz, stereo, s16p, 128 kb/s      Metadata:        encoder         : Lavc61.6.100 libshine[out#0/mp3 @ 0x60633b423480] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown[out#0/mp3 @ 0x60633b423480] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used)size=       0KiB time=N/A bitrate=N/A speed=N/A    

Editly code for generating FFMPEG query:

    let inStream = '[0:a]';    const filterGraph = clipAudio.slice(0, -1).map(({ transition }, i) => {      const outStream = `[concat${i}]`;      const epsilon = 0.0001; // If duration is 0, ffmpeg seems to default to 1 sec instead, hence epsilon.      let ret = `${inStream}[${i + 1}:a]acrossfade=d=${Math.max(epsilon, transition.duration)}:c1=${transition.audioOutCurve || 'tri'}:c2=${transition.audioInCurve || 'tri'}`;      inStream = outStream;      if (i < clipAudio.length - 2) ret += outStream;      return ret;    }).join(',');    const args = [      ...getFfmpegCommonArgs({ enableFfmpegLog }),      ...(flatMap(clipAudio, ({ path }) => ['-i', path])),'-filter_complex',      filterGraph,'-c', 'flac','-y',      outPath,    ];    await execa(ffmpegPath, args);

FFMPEG query structure:

ffmpeg -i /editly-tmp-.../clip000-audio.flac -i /editly-tmp-.../clip226-audio.flac -i ... -filter_complex [0:a][1:a]acrossfade=d=1:c1=tri:c2=tri[concat0],[concat0][2:a]acrossfade=d=0.425:c1=tri:c2=tri[concat1],[concat1][3:a]acrossfade=d=0.425:c1=tri:c2=tri[concat2],... -c flac -y /editly-tmp-.../audio-concat-3.mp3

My hardware:

Ubuntu 24.04 LTSAMD Ryzen™ 5 5600GOnly 8gb(the other slot is broken)AMD Radeon™ RX 580 2048SP

Sorry my poor english :P

Change Codecs, FFMPEG version, node version, slice the files in chunks, change SO(worked in Windows).


Viewing all articles
Browse latest Browse all 6435

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>