我是FFmpeg的新手,并且对不同的编解码器知之甚少。
我使用管道提供输入并从FFmpeg发送输出
我使用的命令基本上是
ffmpeg -i pipe:0 -f flv pipe:1
我使用的Java程序基本上提供了一个输入流作为标准输入(管道:0),FFmpeg将视频转换为所需的格式并发送到标准输出(管道:1),从那里流出到我的远程位置。
我的java程序围绕这段代码,提供输入和输出作为输出流。
基本上我的程序按预期执行,但我发现最终输出视频文件不是完整的持续时间。它持续10秒,我的样本视频是21分钟!它也缺少音频。
我是否需要向FFmpeg提供更多信息?
编辑:当我用输入文件和输出文件替换管道时,输出正确生成没有任何问题,当我使用管道时,文件的大小仍然比原始大。以防万一,如果它有助于诊断。
FFmpeg版本SVN-r23418,版权所有(c)2000-2010 FFmpeg开发人员
建于2010年6月2日04:12:01,gcc 4.4.2
配置: - target-os = mingw32 --enable-runtime-cpudetect --enable-avisynth --enable-gpl --enable-version3 --enable-bzlib --enable-libgsm --enable-libfaad --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg --enable-libxvid --enable-libschroedinger --enable-libx264 --extra-libs =' - lx264 -lpthread' - enable-libopencore_amrwb --enable-libopencore_amrnb --enable-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
输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自'pipe:0':
元数据:
major_brand:isom
minor_version:1
compatible_brands:isom
标题:
艺术家:
日期:
专辑:
评论:
反馈:
类型:
持续时间:00:21:46.63,开始:0.000000,比特率:N / A.
流#0.0(und):视频:h264,yuv420p,512x288 [PAR 1:1 DAR 16:9],403 kb / s,25 fps,25 tbr,25 tbn,50 tbc
流#0.1(und):音频:aac,44100Hz,单声道,s16,47kb / s
输出#0,flv,到'pipe:1':
元数据:
编码器:Lavf52.67.0
流#0.0(und):视频:flv,yuv420p,512x288 [PAR 1:1 DAR 16:9],q = 2-31,200 kb / s,1k tbn,25 tbc
流#0.1(und):音频:libmp3lame,44100 Hz,单声道,s16,64 kb / s
流映射:
流#0.0 - > #0.0
流#0.1 - > #0.1