Sorry, I forgot to add the subject. The subject should be Uploading grabbed audio and video to ffserver fails.
Takeshi 2014-08-08 16:14 GMT+09:00 Takeshi Mizumoto <[email protected]>: > Hello all, > > I am trying to > grab audio from a USB microphone device and video from a webcam, > and send it to ffserver. > The audio codec is flac, the video codec is theora, and the container is ogg. > > I succeeded this when I store the video to a ogg file. > However, I fail to send it to the ffserver. > The error message is > av_interleaved_write_frame(): Connection reset by peer. > # I will put the whole error message below > > This is the ffmpeg command I tried: > ffmpeg -f alsa -ac 7 -ar 16000 -i plughw:2,0 -f video4linux2 -i > /dev/video0 -f ogg -r 10 -s 640x240 -ac 7 -ar 16000 -acodec flac > -vcodec theora -loglevel debug http://localhost:8090/feed.ffm > > Questions are: > 1. Would you give any ideas how to send or inspect the problem? > 2. When I put "http://..." as the output, what protocol does ffmpeg uses? > It seems that ffm format is used, but I couldn't find any document about > it. > From the ffserver log, it receives a GET request and a POST request > for each file upload, and only one POST request for device upload. > but I couldn't find any documents about the protocol. > > Thank you in advance, > Takeshi > > > This is the error message: > ffmpeg version 2.3 Copyright (c) 2000-2014 the FFmpeg developers > built on Aug 5 2014 17:13:34 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9) > configuration: --extra-libs=-ldl --enable-libass --enable-libfdk-aac > --enable-libfreetype --enable-libmp3lame --enable-libopus > --enable-libtheora --enable-libvorbis --enable-libvpx --enable-nonfree > --enable-librtmp > libavutil 52. 92.100 / 52. 92.100 > libavcodec 55. 69.100 / 55. 69.100 > libavformat 55. 48.100 / 55. 48.100 > libavdevice 55. 13.102 / 55. 13.102 > libavfilter 4. 11.100 / 4. 11.100 > libswscale 2. 6.100 / 2. 6.100 > libswresample 0. 19.100 / 0. 19.100 > Splitting the commandline. > Reading option '-f' ... matched as option 'f' (force format) with > argument 'alsa'. > Reading option '-ac' ... matched as option 'ac' (set number of audio > channels) with argument '7'. > Reading option '-ar' ... matched as option 'ar' (set audio sampling > rate (in Hz)) with argument '16000'. > Reading option '-i' ... matched as input file with argument 'plughw:2,0'. > Reading option '-f' ... matched as option 'f' (force format) with > argument 'video4linux2'. > Reading option '-i' ... matched as input file with argument '/dev/video0'. > Reading option '-f' ... matched as option 'f' (force format) with > argument 'ogg'. > Reading option '-r' ... matched as option 'r' (set frame rate (Hz > value, fraction or abbreviation)) with argument '10'. > Reading option '-s' ... matched as option 's' (set frame size (WxH or > abbreviation)) with argument '640x240'. > Reading option '-ac' ... matched as option 'ac' (set number of audio > channels) with argument '7'. > Reading option '-ar' ... matched as option 'ar' (set audio sampling > rate (in Hz)) with argument '16000'. > Reading option '-acodec' ... matched as option 'acodec' (force audio > codec ('copy' to copy stream)) with argument 'flac'. > Reading option '-vcodec' ... matched as option 'vcodec' (force video > codec ('copy' to copy stream)) with argument 'theora'. > Reading option '-loglevel' ... matched as option 'loglevel' (set > logging level) with argument 'debug'. > Reading option 'http://localhost:8090/feed.ffm' ... matched as output file. > Finished splitting the commandline. > Parsing a group of options: global . > Applying option loglevel (set logging level) with argument debug. > Successfully parsed a group of options. > Parsing a group of options: input file plughw:2,0. > Applying option f (force format) with argument alsa. > Applying option ac (set number of audio channels) with argument 7. > Applying option ar (set audio sampling rate (in Hz)) with argument 16000. > Successfully parsed a group of options. > Opening an input file: plughw:2,0. > [alsa @ 0x1c33da0] All info found > Guessed Channel Layout for Input Stream #0.0 : 6.1 > Input #0, alsa, from 'plughw:2,0': > Duration: N/A, start: 1407480570.146633, bitrate: 1792 kb/s > Stream #0:0, 1, 1/1000000: Audio: pcm_s16le, 16000 Hz, 7 channels, > s16, 1792 kb/s > Successfully opened the file. > Parsing a group of options: input file /dev/video0. > Applying option f (force format) with argument video4linux2. > Successfully parsed a group of options. > Opening an input file: /dev/video0. > [video4linux2,v4l2 @ 0x1c4bf60] fd:3 capabilities:84000001 > [video4linux2,v4l2 @ 0x1c4bf60] Current input_channel: 0, input_name: > Camera 1, input_std: 0 > [video4linux2,v4l2 @ 0x1c4bf60] Querying the device for the current frame size > [video4linux2,v4l2 @ 0x1c4bf60] Setting frame size to 1280x480 > [video4linux2,v4l2 @ 0x1c4bf60] The V4L2 driver changed the pixel > format from 0x32315559 to 0x56595559 > [video4linux2,v4l2 @ 0x1c4bf60] Trying to set codec:rawvideo pix_fmt:yuv420p > [video4linux2,v4l2 @ 0x1c4bf60] The V4L2 driver changed the pixel > format from 0x32315559 to 0x56595559 > [video4linux2,v4l2 @ 0x1c4bf60] Trying to set codec:rawvideo pix_fmt:yuv420p > [video4linux2,v4l2 @ 0x1c4bf60] The V4L2 driver changed the pixel > format from 0x32315659 to 0x56595559 > [video4linux2,v4l2 @ 0x1c4bf60] Trying to set codec:rawvideo pix_fmt:yuv422p > [video4linux2,v4l2 @ 0x1c4bf60] The V4L2 driver changed the pixel > format from 0x50323234 to 0x56595559 > [video4linux2,v4l2 @ 0x1c4bf60] Trying to set codec:rawvideo pix_fmt:yuyv422 > [video4linux2,v4l2 @ 0x1c4bf60] All info found > Input #1, video4linux2,v4l2, from '/dev/video0': > Duration: N/A, start: 70732.637869, bitrate: 36372 kb/s > Stream #1:0, 1, 1/1000000: Video: rawvideo (YUY2 / 0x32595559), > yuyv422, 1280x480, 1/1000000, 36372 kb/s, 3.70 fps, 3.70 tbr, 1000k > tbn, 1000k tbc > Successfully opened the file. > Parsing a group of options: output file http://localhost:8090/feed.ffm. > Applying option f (force format) with argument ogg. > Applying option r (set frame rate (Hz value, fraction or > abbreviation)) with argument 10. > Applying option s (set frame size (WxH or abbreviation)) with argument > 640x240. > Applying option ac (set number of audio channels) with argument 7. > Applying option ar (set audio sampling rate (in Hz)) with argument 16000. > Applying option acodec (force audio codec ('copy' to copy stream)) > with argument flac. > Applying option vcodec (force video codec ('copy' to copy stream)) > with argument theora. > Successfully parsed a group of options. > Opening an output file: http://localhost:8090/feed.ffm. > Matched encoder 'libtheora' for codec 'theora'. > [http @ 0x1c44e20] request: POST /feed.ffm HTTP/1.1 > Transfer-Encoding: chunked > User-Agent: Lavf/55.48.100 > Accept: */* > Connection: close > Host: localhost:8090 > > > Successfully opened the file. > detected 4 logical cores > [graph 0 input from stream 1:0 @ 0x1c23a60] Setting 'video_size' to > value '1280x480' > [graph 0 input from stream 1:0 @ 0x1c23a60] Setting 'pix_fmt' to value '1' > [graph 0 input from stream 1:0 @ 0x1c23a60] Setting 'time_base' to > value '1/1000000' > [graph 0 input from stream 1:0 @ 0x1c23a60] Setting 'pixel_aspect' to > value '0/1' > [graph 0 input from stream 1:0 @ 0x1c23a60] Setting 'sws_param' to > value 'flags=2' > [graph 0 input from stream 1:0 @ 0x1c23a60] Setting 'frame_rate' to > value '37/10' > [graph 0 input from stream 1:0 @ 0x1c23a60] w:1280 h:480 > pixfmt:yuyv422 tb:1/1000000 fr:37/10 sar:0/1 sws_param:flags=2 > [scaler for output stream 0:0 @ 0x1c2b560] Setting 'w' to value '640' > [scaler for output stream 0:0 @ 0x1c2b560] Setting 'h' to value '240' > [scaler for output stream 0:0 @ 0x1c2b560] Setting 'flags' to value '0x4' > [scaler for output stream 0:0 @ 0x1c2b560] w:640 h:240 flags:'0x4' interl:0 > [format @ 0x1c50440] compat: called with args=[yuv420p|yuv422p|yuv444p] > [format @ 0x1c50440] Setting 'pix_fmts' to value 'yuv420p|yuv422p|yuv444p' > [AVFilterGraph @ 0x1c1ae20] query_formats: 5 queried, 4 merged, 0 > already done, 0 delayed > [scaler for output stream 0:0 @ 0x1c2b560] picking yuv422p out of 3 > ref:yuyv422 alpha:0 > [scaler for output stream 0:0 @ 0x1c2b560] w:1280 h:480 fmt:yuyv422 > sar:0/1 -> w:640 h:240 fmt:yuv422p sar:0/1 flags:0x4 > [graph 1 input from stream 0:0 @ 0x1c2b0a0] Setting 'time_base' to > value '1/16000' > [graph 1 input from stream 0:0 @ 0x1c2b0a0] Setting 'sample_rate' to > value '16000' > [graph 1 input from stream 0:0 @ 0x1c2b0a0] Setting 'sample_fmt' to value > 's16' > [graph 1 input from stream 0:0 @ 0x1c2b0a0] Setting 'channel_layout' > to value '0x70f' > [graph 1 input from stream 0:0 @ 0x1c2b0a0] tb:1/16000 samplefmt:s16 > samplerate:16000 chlayout:0x70f > [audio format for output stream 0:1 @ 0x1c21460] Setting 'sample_fmts' > to value 's16|s32' > [audio format for output stream 0:1 @ 0x1c21460] Setting > 'sample_rates' to value '16000' > [audio format for output stream 0:1 @ 0x1c21460] Setting > 'channel_layouts' to value '0x70f' > [AVFilterGraph @ 0x1c33380] query_formats: 4 queried, 9 merged, 0 > already done, 0 delayed > [flac @ 0x1c4ef40] compression: 5 > [flac @ 0x1c4ef40] lpc type: Levinson-Durbin recursion with Welch window > [flac @ 0x1c4ef40] prediction order: 1, 8 > [flac @ 0x1c4ef40] order method: estimate > [flac @ 0x1c4ef40] partition order: 0, 8 > [flac @ 0x1c4ef40] block size: 1152 > [flac @ 0x1c4ef40] lpc precision: 15 > [ogg @ 0x1c4cf00] theora kfgshift 6, vrev 1 > Output #0, ogg, to 'http://localhost:8090/feed.ffm': > Metadata: > encoder : Lavf55.48.100 > Stream #0:0, 0, 1/10: Video: theora (libtheora), yuv422p, 640x240, > 1/10, q=2-31, 200 kb/s, 10 fps, 10 tbn, 10 tbc > Metadata: > encoder : Lavc55.69.100 libtheora > Stream #0:1, 0, 1/16000: Audio: flac, 16000 Hz, 6.1, s16, 128 kb/s > Metadata: > encoder : Lavc55.69.100 flac > Stream mapping: > Stream #1:0 -> #0:0 (rawvideo (native) -> theora (libtheora)) > Stream #0:0 -> #0:1 (pcm_s16le (native) -> flac (native)) > Press [q] to stop, [?] for help > *** 3 dup! > *** dropping frame 6 from stream 0 at ts 1 > *** dropping frame 6 from stream 0 at ts 3 > frame= 8 fps=0.0 q=0.0 size= 3kB time=00:00:02.66 bitrate= > 10.6kbits/s*** dropping frame 9 from stream 0 at ts 6 > *** 1 dup! > av_interleaved_write_frame(): Connection reset by peer > No more output streams to write to, finishing. > frame= 11 fps=0.0 q=0.0 Lsize= 13kB time=00:00:03.02 bitrate= > 35.2kbits/s dup=4 drop=3 > video:25kB audio:78kB subtitle:0kB other streams:0kB global > headers:3kB muxing overhead: unknown > Input file #0 (plughw:2,0): > Input stream #0:0 (audio): 774 packets read (665154 bytes); 774 > frames decoded (47511 samples); > Total: 774 packets (665154 bytes) demuxed > Input file #1 (/dev/video0): > Input stream #1:0 (video): 10 packets read (12288000 bytes); 10 > frames decoded; > Total: 10 packets (12288000 bytes) demuxed > Output file #0 (http://localhost:8090/feed.ffm): > Output stream #0:0 (video): 11 frames encoded; 11 packets muxed (26072 > bytes); > Output stream #0:1 (audio): 41 frames encoded (47232 samples); 42 > packets muxed (79941 bytes); > Total: 53 packets (106013 bytes) muxed > 784 frames successfully decoded, 0 decoding errors > [AVIOContext @ 0x1c52620] Statistics: 0 seeks, 5 writeouts > _______________________________________________ > ffmpeg-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/ffmpeg-user -- -- Takeshi Mizumoto, PhD _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user
