Opened 10 years ago
Closed 10 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 , 10 years ago
comment:2 by , 10 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 ':'.