ffmpeg:将tee与segmenter一起使用

时间:2017-04-30 12:34:02

标签: ffmpeg tee

我正在尝试使用tee将我的流输出到1分钟段并同时输出到文件中。这是我的命令:

ffmpeg -i "rtsp://${cameraIp}:554/axis-media/media.amp?videocodec=h264&resolution=1280x720&fps=15" -c copy -map 0 \
-f tee "[f=ssegment:segment_time=60:segment_format=mp4:reset_timestamps=1:r=15] ${rootPath}/${storeId}-${location}-%03d.mp4 \
| /tmp/${cameraIp}.mkv"

单独(没有发球台)两个输出都可以正常工作。所以我可以输出到分段文件或输出到非分段文件。但是在发球时我得到了这个错误:

  

[stream_segment,ssegment @ 0x217ece0]无法打开细分'   /etc/cida/diagnostics/vid/780801-99-000.mp4'[tee @ 0x217d820]奴隶   “[F = ssegment:segment_time = 60:segment_format = MP4:reset_timestamps = 1:R = 15]   /etc/cida/diagnostics/vid/780801-99-%03d.mp4':错误写标题:   没有这样的文件或目录

请参阅下面的完整命令输出。有什么建议吗?

  

ffmpeg版本3.3版权所有(c)2000-2017 FFmpeg开发人员
  用gcc 4.8(Ubuntu 4.8.4-2ubuntu1~14.04.3)配置构建:   --extra-libs = -ldl --prefix = / opt / ffmpeg --mandir = / usr / share / man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable- version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder = amrnb --disable-decoder = amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 - -enable-libx265 --enable-libfdk -aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable- libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack --enable-nvenc libavutil 55. 58.100 / 55. 58.100 libavcodec 57. 89.100 / 57. 89.100 libavformat 57. 71.100 / 57. 71.100 libavdevice 57. 6.100 / 57. 6.100 libavfilter 6. 82.100 / 6. 82.100 libavresample 3. 5. 0 /   3. 5. 0 libswscale 4. 6.100 / 4. 6.100 libswresample 2. 7.100 / 2. 7.100 libpostproc 54. 5.100 / 54. 5.100输入#0,rtsp,来自'rtsp://10.83.245.7:554 / axis-media /media.amp?videocodec=h264&resolution=1280x720&fps=15' :   元数据:       title:与GStreamer一起流式传输的会话       comment:rtsp-server持续时间:N / A,开始:0.080011,比特率:N / A.       流#0:0:视频:h264(主),yuvj420p(pc,bt709,逐行),1280x720 [SAR 1:1 DAR 16:9],25 tbr,90k tbn,180k tbc   [stream_segment,ssegment @ 0x217ece0]无法打开段'   /etc/cida/diagnostics/vid/780801-99-000.mp4'[tee @ 0x217d820]奴隶   “[F = ssegment:segment_time = 60:segment_format = MP4:reset_timestamps = 1:R = 15]   /etc/cida/diagnostics/vid/780801-99-%03d.mp4':错误写标题:   没有这样的文件或目录[tee @ 0x217d820] Slave muxer#0失败了,   中止。无法为输出文件#0写入标头(不正确的编解码器   参数?):没有这样的文件或目录流映射:流#0:0    - > #0:0(复制)       最后一条消息重复了1次

1 个答案:

答案 0 :(得分:1)

以下是一个可以帮助您或其他人的示例。

我在1小时段内将视频从vga录制到usb捕获设备,并且还流式传输到UDP,然后使用VLC(cvlc)将其作为rtp流流式传输到多播地址。这样,如果需要,多人可以观看直播视频(约5秒延迟)。

这是命令行:

ffmpeg -rtbufsize 500M -f v4l2 -video_size 1152x900 -i /dev/video0 \
  -vf "drawtext='fontfile=/usr/share/fonts/truetype/freefont/FreeSans.ttf:text=%{localtime}: x=10: y=10: fontcolor=white: box=1: boxcolor=black@1: fontsize=24'" \
  -c:v libx264 -preset veryslow -crf 28 \
  -pix_fmt yuv420p -an -r 15 -y \
  -f tee -map 0:v "[f=segment:segment_atclocktime=1:segment_time=3600:strftime=1]/videos/raw_video/video_%Y%m%d-%H%M%S.mp4|[f=mpegts]udp://127.0.0.1:1234/"

操作系统是Ubuntu 16.04 MATE。