Opened 8 years ago
Closed 8 years ago
#5229 closed defect (worksforme)
movie filter does not accept pipe protocol as input
Reported by: | dave rice | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avdevice |
Version: | git-master | Keywords: | movie |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
The movie filter defines the 'filename' argument with: "The name of the resource to read (not necessarily a file; it can also be a device or a stream accessed through some protocol)."
I would like to have the movie filter access the input from a pipe, but the pipe protocol doesn't appear to work in the movie filter.
How to reproduce:
The ffmpeg is simply used here to produce an output to pipe. ffplay should access the pipe in the movie filter but it provides an error.
ffmpeg -f lavfi -i mandelbrot -c copy -f nut - | ffplay -f lavfi "movie=pipe:0" ffmpeg version N-43483-gac5a4de Copyright (c) 2000-2016 the FFmpeg developers built with Apple LLVM version 7.0.2 (clang-700.1.81) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfontconfig --enable-libfreetype --enable-libfaac --enable-libass --enable-ffplay --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-nonfree --enable-vda libavutil 55. 17.100 / 55. 17.100 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 ffplay version N-43483-gac5a4de Copyright (c) 2003-2016 the FFmpeg developers built with Apple LLVM version 7.0.2 (clang-700.1.81) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfontconfig --enable-libfreetype --enable-libfaac --enable-libass --enable-ffplay --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-nonfree --enable-vda libavutil 55. 17.100 / 55. 17.100 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 [Parsed_movie_0 @ 0x7febf2c44e20] Failed to avformat_open_input 'pipe' [lavfi @ 0x7febf3081a00] Error initializing filter 'movie' with args 'pipe:0' movie=pipe:0: No such file or directory Input #0, lavfi, from 'mandelbrot': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[0] / 0x424752), rgb0, 640x480 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc Output #0, nut, to 'pipe:': Metadata: encoder : Lavf57.25.100 Stream #0:0: Video: rawvideo (RGB[0] / 0x424752), rgb0, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 25 tbr, 51200 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (copy) Press [q] to stop, [?] for help
This example is the same except that the sdterr output of ffmpeg is redirected to distinguish the two processes:
ffmpeg -f lavfi -i mandelbrot -c copy -f nut - 2>/dev/null | ffplay -f lavfi "movie=pipe:0" ffplay version N-43483-gac5a4de Copyright (c) 2003-2016 the FFmpeg developers built with Apple LLVM version 7.0.2 (clang-700.1.81) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfontconfig --enable-libfreetype --enable-libfaac --enable-libass --enable-ffplay --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-nonfree --enable-vda libavutil 55. 17.100 / 55. 17.100 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 [Parsed_movie_0 @ 0x7fc319458f20] Failed to avformat_open_input 'pipe' [lavfi @ 0x7fc31a82a600] Error initializing filter 'movie' with args 'pipe:0' movie=pipe:0: No such file or directory
The pipe protocol does work as a direct input:
ffmpeg -f lavfi -i mandelbrot -c copy -f nut - 2>/dev/null | ffplay -i "pipe:0" ffplay version N-43483-gac5a4de Copyright (c) 2003-2016 the FFmpeg developers built with Apple LLVM version 7.0.2 (clang-700.1.81) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfontconfig --enable-libfreetype --enable-libfaac --enable-libass --enable-ffplay --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-nonfree --enable-vda libavutil 55. 17.100 / 55. 17.100 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 Input #0, nut, from 'pipe:0':q= 0KB vq= 0KB sq= 0B f=0/0 Metadata: encoder : Lavf57.25.100 Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[0] / 0x424752), rgb0, 640x480, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 51200 tbn, 51200 tbc 1.10 M-V: -0.039 fd= 3 aq= 0KB vq=15601KB sq= 0B f=0/0
Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.
Change History (2)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Component: | undetermined → avdevice |
---|---|
Keywords: | pipe removed |
Resolution: | → worksforme |
Status: | new → closed |
It is difficult to escape the colon (needs four backslashes here) but it's possible.
It does work here:
ffmpeg -f lavfi -i mandelbrot -c copy -f nut - | ffmpeg -f lavfi -i "movie=pipe
\:0" -f nut -c:v rawvideo - | mpv -
You need to escape ':'.