Java FFmpeg管道相关问题

Java FFmpeg管道相关问题,java,ffmpeg,pipe,Java,Ffmpeg,Pipe,我是FFmpeg新手,对不同的编解码器知之甚少 我使用管道从FFmpeg提供输入和输出 我使用的命令基本上是 ffmpeg -i pipe:0 -f flv pipe:1 我正在使用一个Java程序,它基本上提供一个输入流作为标准输入管道:0,FFmpeg将视频转换成所需的格式,并发送到标准输出管道:1,从那里我将流输出到我的远程位置 我的java程序围绕这段代码展开,提供输入并将输出作为输出流发送 从本质上说,我的程序执行它应该执行的操作,但是我看到最终输出的视频文件的持续时间不完整。这就

我是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-启用运行时cpudetect-启用avisynth-启用gpl-启用-version3-启用bzlib-启用libgsm-启用libfaad-启用pthreads-启用libvorbis-启用libthera-启用libspeex-启用-libmp3lame-启用libopenjpeg-启用libxvid-启用libschroedinger-启用-libx264-额外libs='-lx264-lpthread'-enable-libopencore_amrwb-enable-libopencore_amrnb-enable librtmp-extra libs='-lrtmp-lssl-lcrypto-lws2_32-lgdi32-lwinmm-lcrypt32-lz'-arch=x86-交叉前缀=i686-mingw32--cc='ccache i686-mingw32-gcc'-enable memalign hack libavutil 50.16。0 / 50.16. 0 libavcodec52.72。1 / 52.72. 1. libav52.67格式。0 / 52.67. 0 libav52设备。2.0 / 52. 2.0 libavfilter 1.20。0 / 1.20. 0 libswscale 0.11。0 / 0.11. 0 从“管道:0”输入0、mov、mp4、m4a、3gp、3g2、mj2: 元数据: 主要品牌:isom 次要版本:1 兼容品牌:isom 标题: 艺术家: 日期: 专辑: 评论: 反馈: 体裁: 持续时间:00:21:46.63,开始时间:0.000000,比特率:不适用 流0.0und:视频:h264,yuv420p,512x288[标准杆1:1 DAR 16:9],403 kb/s,25 fps,25 tbr,25 tbn,50 tbc 流0.1音频:aac,44100 Hz,单声道,s16,47 kb/s 输出0,flv,至“管道:1”: 元数据: 编码器:Lavf52.67.0 流0.0und:视频:flv,yuv420p,512x288[PAR 1:1 DAR 16:9],q=2-31200kb/s,1k tbn,25 tbc 流0.1音频:libmp3lame,44100 Hz,单声道,s16,64 kb/s 流映射: 流0.0->0.0
流0.1->0.1

您将使用什么格式和编解码器?FFmpeg的STDERR输出是什么?并非所有格式都可以通过管道传输。。。有些需要搜索。我需要转换编解码器的范围广泛,但目前我正在测试h264 mp4视频到flv格式。事实上,即使我提供了-vcodec copy-acodec copy,它仍然不能输出完整长度的视频和来自STDERR的输出?值得注意的是.flv是容器而不是编解码器。我建议使用-vcodec libx264Brad,将stderr输出添加到问题本身