Sponsored Content
Top Forums UNIX for Advanced & Expert Users Ffmpeg (avconv) + crtmpserver Linux streaming video, no player to play it Post 302843812 by +Yan on Thursday 15th of August 2013 07:56:56 AM
Old 08-15-2013
Ffmpeg (avconv) + crtmpserver Linux streaming video, no player to play it

Hello Linux experts,

I'm working on live video streaming project, and my job is to create video streaming server using
Ubuntu 13.04
Here is what I've done so far:
1. Installed crtmpserver from Ubuntu's repositories.
2. Installed ffmpeg

To test the server i use webcam as source of video, and the following command:
avconv -f video4linux2 -i /dev/video0 -f flv -an -metadata streamName="test" tcp://localhost:6666


The command output is:

Code:
avconv 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
[video4linux2 @ 0x25b79e0] Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
  Duration: N/A, start: 14840.930660, bitrate: 147456 kb/s
    Stream #0.0: Video: rawvideo, yuyv422, 640x480, 147456 kb/s, 30 tbr, 1000k tbn, 30 tbc
Incompatible pixel format 'yuyv422' for codec 'flv', auto-selecting format 'yuv420p'
[buffer @ 0x25b92e0] w:640 h:480 pixfmt:yuyv422
[avsink @ 0x25a5160] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x25a5840] w:640 h:480 fmt:yuyv422 -> w:640 h:480 fmt:yuv420p flags:0x4
Output #0, flv, to 'tcp://localhost:6666':
  Metadata:
    streamName      : test
    encoder         : Lavf53.21.1
    Stream #0.0: Video: flv, yuv420p, 640x480, q=2-31, 200 kb/s, 1k tbn, 30 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> flv)
Press ctrl-c to stop encoding


So far so good, BUT when I try to play the stream with mplayer from another console with the command:
mplayer rtmp://localhost/live/test mplayer is stalled for very long time (10-15 min.) before the video starts.

If in the meantime I terminate the avconv command, the video is being shown immediately by mplayer.
I tryied the following mplayer options without success:
-nosound
-nocache
different combinations of -cachie N

I had success with this flash player: Flash RTMP Player - Live Video Streaming
But there is about 3 sec. delay which is too much for me.


Please advice me how can I make mplayer play the video as soon as possible ?

Here is the mplayer output:
Code:
mplayer rtmp://localhost/live/test

MPlayer2 UNKNOWN (C) 2000-2012 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing rtmp://localhost/live/test.
Forced lavf FLV format demuxer
Detected file format: libavformat

Thank you in advance.
 

We Also Found This Discussion For You

1. Programming

Video/Audio Streaming in C?

Hi Folks, I have just joined, and have a problem... I am doing my thesis and need to transfer a file from server to the client, while doing that I want to stream the file ( the files being video/audio files). I am unable to figure out abt the streaming part...if there exist any libraries... (0 Replies)
Discussion started by: pappu
0 Replies
.::SWF::VideoStream(3pm)				User Contributed Perl Documentation				  .::SWF::VideoStream(3pm)

NAME
SWF::VideoStream - SWF Video class SYNOPSIS
use SWF::VideoStream; $videostream = new SWF::VideoStream("test.flv"); DESCRIPTION
SWF::VideoStream is a helper class useful for playing videos via SWF applications, either via embedded video data, or controlled by ActionScript. METHODS
$videostream = new SWF::VideoStream($filename) Creates a SWF::VideoStream object. If the file can't be opened the constructor will return an empty object. The filename is not limited to 'flv' extension. $frames = $videostream->getNumFrames() This method returns the number of video-frames of an object of SWF::VideoStream, this works only for embedded streams. In case of error you will get result of -1. $videostream->setDimension(width, height) This method sets width and height for streamed videos, this works only on streamed videos (progressive download or rtmp). $bool = $videostream->hasAudio() A test whether the embedded FLV stream also has audio data. $videostream->setFrameMode($mode) If the mode == SWFVIDEOSTREAM_MODE_AUTO (default) on every SWF movie frame a video frame is added. In SWFVIDEOSTREAM_MODE_MANUAL mode, the user needs to call the nextFrame() method to change the video's frame. This works only with embedded video streams. Does return the previous mode or -1 if an invalid mode was passed. $result = $videostream->nextFrame() Switch to next video frame. Works only with embedded video streams. Returns -1 if an error happend. Here follows some demo code how to use SWF::VideoStream objects (without ActionScript): use SWF qw(:ALL); # to be lazy $movie = new SWF::Movie(); $movie->setRate( 25 ); # $movie->setRate( 5 ); # e.g. 5 for slow motion # here movie set background etc. etc. # $video=new SWF::VideoStream('MyTestVideo.flv'); die if (-1 == $v->getNumFrames()); # abort if something went wrong # $video->setFrameMode(SWF::Constants::SWFVIDEOSTREAM_MODE_MANUAL); $video->seek(1000, 0); # for example only $displayitem = $movie->add($video); # # 250 for a 10 seconds movie part (at rate of 25 per minute) for(my $n = 0; $n < 250; ++$n) { $video->nextFrame(); $movie->nextFrame(); } $movie->save("MyTestVideo.swf",9); # that's all, folks $result = $videostream->seek($frame, $whence) This functions allows seeking $frame in video stream, returning the old video frame position. As value of $whence use one of the following: 0 for seeking from beginning 1 for seeking from current position 2 for seeking from end of file AUTHOR
developers of ming ming.sourceforge.net SEE ALSO
SWF, SWF::Action, SWF::Movie, SWF::MovieClip, SWF::Sound, SWF::SoundStream, SWF::Constants perl v5.14.2 2011-10-26 .::SWF::VideoStream(3pm)
All times are GMT -4. The time now is 10:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy