[FFmpeg-user] concat + pipe protocols

Mark Bogdanoff bog at ted.com
Fri May 30 06:02:55 CEST 2014


I'm running ffmpeg at master as of earlier today. I'm attempting to utilize the concat protocol as outlined here (copied relevant bit below): http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files#protocol
> mkfifo temp1 temp2
> ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1 2> /dev/null & \
> ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2 2> /dev/null & \
> ffmpeg -f mpegts -i "concat:temp1|temp2" -c copy -bsf:a aac_adtstoasc output.mp4

I'm attempting to run the command without intermediates or named pipes utilizing additional file descriptors. For now, I'm attempting this simple test:

ffmpeg -i input.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts pipe:1 | ffmpeg -f mpegts -i concat:pipe:0 -c copy -bsf:a aac_adtstoasc concat.mp4 

When I run this, I get this error: concat:pipe:0: Function not implemented

Looking at the source (http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/concat.c;h=3bbc83dfef16b629264c975dad4c28a37cee002d;hb=refs/heads/master#l101), it appears that ffmpeg is failing because it cannot get the size of the incoming pipe. Since this works with named pipes, I'm assuming there's an interaction here that isn't working with ffmpeg's pipes? Is this expected behavior or is there another way of specifying concat with pipes?


Mark bog

More information about the ffmpeg-user mailing list