我正在尝试设置从我的相机到网络服务器的实时音频传输。
我目前正在使用 D-SRL 通过 Firewire 捕获视频/音频,然后在运行 ffmpeg 的 Ubuntu 上使用 dvgrab。
我的机器(示例 IP:1.2.3.4)--------------------------> Web 服务器(示例 IP:5.6.7.8)
以下是我从机器 1.2.3.4 运行的代码:
dvgrab - | ffmpeg -i - -vn -acodec copy -b:a 32k -ar 22050 -f ffm http://5.6.7.8:8090/feed1.ffm
当我运行此命令时,它只是挂起而没有编码:
rom1394_0 warning: read failed: 0x0000fffff0000414
error reading config rom directory for node 0
ffmpeg version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Found AV/C device with GUID 0x0000850001d0089c
Waiting for DV...
Capture Started
[dv @ 0x1e9db80] Estimating duration from bitrate, this may be inaccurate
Input #0, dv, from 'pipe:':
Duration: N/A, start: 0.000000, bitrate: 28800 kb/s
Stream #0.0: Video: dvvideo, yuv420p, 720x576, 28800 kb/s, PAR 16:15 DAR 4:3, 25 tbr, 25 tbn, 25 tbc
Stream #0.1: Audio: pcm_s16le, 32000 Hz, 2 channels, s16, 1024 kb/s
Stream #0.2: Audio: pcm_s16le, 32000 Hz, 2 channels, s16, 1024 kb/s
当我按 Control+C 时,它返回
^C
"": buffer underrun near: timecode ??:??:??.?? date 2013.10.14 23:08:55
This error means that the frames could not be written fast enough.
FFServer 的状态页面确实显示了入站连接,防火墙肯定不是问题。
2 | feed1.ffm | 1.2.3.4 | HTTP/1.1 | WAIT_FEED
如果我在网络服务器上运行它,它会完美地工作
ffmpeg -i downloaded.ffm http://127.0.0.1:8090/feed1.ffm
其中 downloaded.ffm 是我本地机器上预先录制的文件。
我应该怎么做才能让 ffmpeg 将管道 dvgrab 正确传输到我的网络服务器?
作为参考,这是我的 ffserver 配置文件
Port 8090
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
<Feed feed1.ffm>
File /root/feed1.ffm
FileMaxSize 10M
</Feed>
<Stream live.webm>
Feed feed1.ffm
Format webm
NoVideo
AudioCodec vorbis
AudioChannels 1
AudioSampleRate 22050
AudioBitRate 32
Preroll 0
AVOptionAudio flags +global_header
</Stream>
<Stream live.ogg>
Feed feed1.ffm
Format ogg
NoVideo
AudioCodec vorbis
AudioChannels 1
AudioSampleRate 22050
AudioBitRate 32
Preroll 0
AVOptionAudio flags +global_header
</Stream>
<Stream status.html>
Format status
</Stream>
# Redirect index.html to the appropriate site
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
谢谢。