답변:
ffmpeg
데이터를 stdout으로 출력 ffplay
할 수 없거나 stdin에서 입력을 가져올 수 없는지 모르겠습니다 .
그것이 ffmpeg
stdout에 데이터를 출력 할 수 없다면 :
capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)
(이동하려면 stdin에서 입력을 받도록 -
인수 를 추가해야합니다 ffplay
.)
그것이 ffplay
stdin에서 입력을 가져올 수없는 경우 :
ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null
<(command)
및 >(command)
구성 에 대한 자세한 정보 는 bash 매뉴얼 의 프로세스 대체 섹션을 참조하십시오 .
ffmpeg -i input.avi <options> -f matroska - | ffplay -
작동합니다; 출력을위한 컨테이너 형식을 설정해야합니다. 이것은 일반적으로 ffmpeg에서 출력을 제공하는 확장을보고 설정되지만 여기서는으로 수동으로 설정해야합니다 -f
. 거의 모든 비디오를 포함 할 수 있으므로 matroska (MKV)를 사용하는 것이 좋습니다. 따라서 트랜스 코딩하는 모든 것이 완벽하게 작동해야합니다.
우분투 12.04를 사용하는 경우는,는 FFmpeg은 libav 포크에 의해 대체되었습니다, 당신은 사용해야 avconv
하고 avplay
대신; 그렇지 않으면 구문이 동일합니다. 거기에 일종의 ffmpeg가 있지만 디자인에 의해 무너집니다.
pipe:: Invalid data found when processing inputK
Power Shell에서 와 같이 오류가 발생 하지만 명령 프롬프트에서 잘 작동
ffmpeg는 배관 작업을 지원합니다. 여기 에서 설명서의 해당 섹션을 참조 하십시오 .
ffplay의 작동 방식을 모르지만 ffmpeg의 출력을 표준 출력으로 파이프하려면 파이프 명령을 ffmpeg 명령의 끝에 추가 할 수 있습니다. 예:
ffmpeg -i input.flv pipe:1 | ffplay -i -
man ffplay
것을 볼 수 없습니다. 어쩌면 유일한 것일까 요? ffplay
-i
ffmpeg
pipe:1
vs -
? -
ffmpeg 2.8.6에서 작동합니다.
일반 파이프가 작동하는 것처럼 보입니다 (적어도 창문에서는).
ffmpeg -i sintel.mpg -pix_fmt yuv420p -f rawvideo - | ffplay -f rawvideo -pix_fmt yuv420p -s 720x480 -
그래도 더 복잡한 입력 / 출력으로 시도하지 않았습니다 ...
ffmpeg -f dshow -i video=screen-capture-recorder -pix_fmt yuv420p -f mpegts - | ffplay -analyzeduration 10 -f mpegts -
약간 빠른 시작입니다
Unable to find a suitable output format for 'pipe:'
-코덱을 지정해야했습니다 -f
.