1

The command below used to work but stopped around ubuntu/kubuntu 20.04.

ls *.mp3 | sed -e "s/\(.*\)/file '\1'/" | ffmpeg -protocol_whitelist 'file,pipe' -f concat -i - -c copy output.mp3

The output including the error is below?

adam@unix:~/TM/copy$ ls *.mp3 | sed -e "s/\(.*\)/file '\1'/" |  ffmpeg -protocol_whitelist 'file,pipe' -f concat -i - -c copy output.mp3

ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[mp3 @ 0x601f4464d040] Format mp3 detected only with low score of 1, misdetection possible!
[mp3 @ 0x601f4464d040] Failed to read frame size: Could not seek to 1026.
[concat @ 0x601f4463a700] Impossible to open 'pipe:01.mp3'
pipe:: Invalid argument

It has given the same error since 20.04. Any suggestions?

The answer was based on a previous post which referenced--> Based on Miles Wolbe's answer, here is a one-liner that worked for me: posted by Andy Balaam on the original question.

mp3wrap (from sudo apt install) rejects the first file but merges all the othe files in that directory. So it seems that the code doesn't like the first input but mp3wrap moves past the fault and on it's second file query everything works?

So i guess i could put it in a loop inside a bash file but not sure how to do this. Python?

3
  • Please add this further information you are dripping into the comments to the question itself. Your goal is to make the question clear and complete, and using the EDIT button is strongly recommended. Commented Jun 12 at 16:08
  • try this variant → ffmpeg -f concat -safe 0 -i <(ls /full/path/*.mp3 | sed -e "s/\(.*\)/file '\1'/") -c copy /tmp/out.mp3 -y Commented Jun 14 at 2:52
  • Yes, it works! Thanks!!
    – Cortez
    Commented Jun 14 at 14:33

1 Answer 1

0

I wasn't sure what this error message referred to either. Here are the steps I took to find out:

  • Noticed the final line: pipe:: Invalid argument
  • Searched the ffmpeg docs for the pipe protocol, found this
  • Saw that pipe expects a number representing a file descriptor

It's hard to say more without knowing the what the sed output looks like, but based on the ls usage, it seems like you're expecting only to read files by their path, so I'm not sure A. where pipe is coming from in the first place, or B. why you need it in protocol_whitelist in the first place.

Try removing pipe from the list?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .