ffmpeg의 출력을 ffplay로 파이프하려면 어떻게해야합니까?


22

ffmpeg의 출력을 ffplay로 파이프하려면 어떻게해야합니까?

현재 bash에서 해결 방법을 사용합니다.

mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam

답변:


18

ffmpeg데이터를 stdout으로 출력 ffplay할 수 없거나 stdin에서 입력을 가져올 수 없는지 모르겠습니다 .

그것이 ffmpegstdout에 데이터를 출력 할 수 없다면 :

capture /dev/stdout | ffmpeg -i - >(ffplay 2> /dev/null)

(이동하려면 stdin에서 입력을 받도록 -인수 를 추가해야합니다 ffplay.)

그것이 ffplaystdin에서 입력을 가져올 수없는 경우 :

ffplay <(capture /dev/stdout | ffmpeg -i -) 2> /dev/null

<(command)>(command)구성 에 대한 자세한 정보 는 bash 매뉴얼 의 프로세스 대체 섹션을 참조하십시오 .


4
나를 위해 이것은 "-f"로 출력 형식을 명시 적으로 지정하지 않으면 작동하지 않았습니다. ffmpeg.org/ffmpeg.html에 지정된 대로 : "형식은 일반적으로 입력 파일에 대해 자동으로 감지되며 출력 파일의 파일 확장자에서 추측됩니다" 주어진 답변에서 ffmpeg는 출력 형식을 추측 할 수 없습니다. ffmpeg에 "-f fmt"가 추가되어 있어야한다고 생각합니다.
Pavel K.

1
ffmpeg 2.8.6은 다른 답변에서 언급 한 것처럼 stdin 입력을 지원합니다. 당신과 그 지원을 확인할 수 있습니다 stackoverflow.com/questions/12999674/...
치로 틸리新疆改造中心法轮功六四事件

17
ffmpeg -i input.avi <options> -f matroska - | ffplay -

작동합니다; 출력을위한 컨테이너 형식을 설정해야합니다. 이것은 일반적으로 ffmpeg에서 출력을 제공하는 확장을보고 설정되지만 여기서는으로 수동으로 설정해야합니다 -f. 거의 모든 비디오를 포함 할 수 있으므로 matroska (MKV)를 사용하는 것이 좋습니다. 따라서 트랜스 코딩하는 모든 것이 완벽하게 작동해야합니다.

우분투 12.04를 사용하는 경우는,는 FFmpeg은 libav 포크에 의해 대체되었습니다, 당신은 사용해야 avconv하고 avplay대신; 그렇지 않으면 구문이 동일합니다. 거기에 일종의 ffmpeg가 있지만 디자인에 의해 무너집니다.


Win10 : pipe:: Invalid data found when processing inputKPower Shell에서 와 같이 오류가 발생 하지만 명령 프롬프트에서 잘 작동
John

11

ffmpeg는 배관 작업을 지원합니다. 여기 에서 설명서의 해당 섹션을 참조 하십시오 .

ffplay의 작동 방식을 모르지만 ffmpeg의 출력을 표준 출력으로 파이프하려면 파이프 명령을 ffmpeg 명령의 끝에 추가 할 수 있습니다. 예:

ffmpeg -i input.flv pipe:1 | ffplay -i -

1
고맙게도, 나는 어떻게 든 매뉴얼 페이지의 섹션을 놓쳤다. 그러나 나는이 구성을 작동시킬 수 없었다. 출력 파일 이름은 ffmpeg에서 제거되고 입력 파이프는 ffplay args에 추가되어야한다. 그에 따라 게시물을 편집하겠습니다 ..
wim

감사. 내가 말했듯이, 나는 전에 ffplay를 사용한 적이 없지만 ffmpeg를 알고 있습니다.
matzahboy

내 스위치를 지원하는 man ffplay것을 볼 수 없습니다. 어쩌면 유일한 것일까 요? ffplay-iffmpeg
sdaau

1
pipe:1vs -? -ffmpeg 2.8.6에서 작동합니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

9

일반 파이프가 작동하는 것처럼 보입니다 (적어도 창문에서는).

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 -

약간 빠른 시작입니다


5
나는 Unable to find a suitable output format for 'pipe:'-코덱을 지정해야했습니다 -f.
i336_

작동하지만 이미지 품질이 매우 낮음
John

그것의 낮은 이미지 품질은 확실히 당신이 처음에 캡처하고하는 (첫번째 파일 등을 그 저장) 높은 이미지 품질이 있는지 확인 정상 품질 ... 수 "있어야"경우
rogerdpack
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.