ffmpeg에서 파이프를 사용하면 파일을 사용하는 것과는 다른 동작을합니다.


2

내가 입력을 제공하고 FFmpeg에서 출력을 보내려면 파이프를 사용하고 있습니다

내가 사용하는 명령은 본질적으로

ffmpeg -i 파이프 : 0 -f flv 파이프 : 1

기본적으로 입력 스트림을 표준 입력 (파이프 : 0)으로 제공하는 Java 프로그램을 사용하고 FFmpeg는 비디오를 필요한 형식으로 변환하고 원격 위치로 스트리밍하는 표준 출력 (파이프 : 1)으로 보냅니다.

내 Java 프로그램은이 코드 조각을 중심으로 입력을 제공하고 출력 스트림으로 출력을 보냅니다.

본질적으로 내 프로그램은 예상 한대로 작동하지만 최종 출력 비디오 파일의 재생 시간이 전체적으로 길지는 않습니다. 10 초의 지속 시간과 같으며 샘플 비디오는 21 분입니다. !

입력 파일과 출력 파일로 파이프를 바꿀 때 출력이 문제없이 올바르게 생성됩니다. 파이프를 사용하면 파일 크기가 원래 크기보다 훨씬 커집니다. 진단을 내리는 데 도움이 될 경우에 대비해.

나는 다양한 코덱을 변환해야하지만, 현재는 h264 mp4 비디오를 flv 형식으로 테스트하고 있습니다. 사실 -vcodec copy -acodec copy를 제공하더라도 여전히 전체 길이의 비디오를 출력하지 않습니다.

나는 파이프가 찾지 못하고 때로는 비디오 정보가 파일의 끝에 보관되기 때문에 기본적으로 답변이 많은 게시물을 보았습니다. 그러나 flv와 같은 입력 파일 형식으로 변환하려고해도 여전히 동일한 문제가 발생합니다. 출력이 FLV로 지정되고 -vcodec copy -acodec copy를 제공하는 경우에도

FFmpeg에 더 많은 정보를 제공해야합니까? 누구든지 파이프 기반 비디오 변환을 성공적으로 마쳤습니까? 심지어 미디어 정보가 파일의 시작 부분에있는 파일이라도?

FFmpeg 버전 SVN-r23418, 저작권 (c) 2000-2010 FFmpeg 개발자
2010 년 6 월 2 일 04:12:01 gcc 4.4.2에서 빌드
구성 : - 대상 -Os = mingw32 - 가능 - 런타임 - cpudetect - 가능 - avisynth - 가능 - gpl - 가능 버전 - 가능 - bzlib - 사용 가능 libgsm - 사용 가능 - libfaad - 사용 가능 - pthreads - 사용 가능 libvorbis - 사용 가능 libtheora - 사용 가능 libspeex - 사용 가능 -libmp3lame - 사용 가능 libopenjpeg - 사용 가능 libxvid - 사용 가능 libschroedinger - 사용 가능 libx264 - 사용 자 - libs = '- lx264 -lpthread '- 사용 가능 libopencore_amrwb - 사용 가능 libopencore_amrnb - 사용 가능 -librtmp - extra-libs ='- lrtmp -lssl -lcrypto -lws2_32 -lgdi32 -lwinmm -lcrypt32 -lz '--arch = x86 --cross -prefix = i686-mingw32- --cc = 'ccache i686-mingw32-gcc'--enable-memalign-hack
libavutil 50.16. 0 / 50.16. 0
libavcodec 52.72. 1 / 52.72. 1
libavformat 52.67. 0 / 52.67. 0
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.20. 0 / 1.20. 0
libswscale 0.11. 0 / 0.11. 0
'pipe : 0'에서 입력 # 0, mov, mp4, m4a, 3gp, 3g2, mj2 :
메타 데이터 :
major_brand : isom
부 버전 : 1
compatible_brands : isom
제목 :
아티스트 :
날짜 :
앨범 :
의견 :
피드백:
장르 :
재생 시간 : 00 : 21 : 46.63, 시작 : 0.000000, 전송률 : N / A
스트림 # 0.0 (und) : 비디오 : h264, yuv420p, 512x288 [PAR 1 : 1 DAR 16 : 9], 403kb / s, 25fps, 25tbr, 25tbn, 50tbc
스트림 # 0.1 (und) : 오디오 : aac, 44100 Hz, 모노, s16, 47 kb / s
출력 # 0, flv, 'pipe : 1':
메타 데이터 :
인코더 : Lavf52.67.0
스트림 # 0.0 (und) : 비디오 : flv, yuv420p, 512x288 [PAR 1 : 1 DAR 16 : 9], q = 2-31, 200kb / s, 1k tbn, 25 tbc
스트림 # 0.1 (und) : 오디오 : libmp3lame, 44100Hz, 모노, s16, 64kb / s
스트림 매핑 :
스트림 # 0.0 - & gt; # 0.0
스트림 # 0.1 - & gt; # 0.1


1
나는 그 문제를 특별히 보지 못했지만 2010 년부터 FFmpeg 버전을 사용하고 있습니다. 오래된 버전으로 전환하는 것이 좋습니다. ffmpeg.org/download.html
slhck

나는 압축되지 않은 mkv와 같은 문제에 직면 해있다. 당신은 찾을 수없는 파이프 옆에 어떤 해결책을 찾았습니까?
Denis Kokorin

아니요, AWS Elastic Transcoder를 사용하기 위해 ffmpeg를 포기했습니다. 그러나 그것은 ffmpeg 기능보다는 라이센스와 관련된 비즈니스 의사 결정이었습니다.
Ranjit Aneesh

나는 똑같은 문제가있어 그것에 대해 아무 것도 할 수 없다 .... 당신은 그걸 해결할만큼 운이 좋았습니까?
Belovoj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.