how to demux from flv to vp8(ivf format)? how to demux from webm to vp8? - webm

I want to demux from flv to vp8.
I can get lots of webm sources, but I don't know how I can demux from webm to vp8.
What option should I use with ffmpeg?

Here is how to demux the VP8 stream from a WebM video to an IVF file using FFmpeg:
ffmpeg -i WEBM_INPUT.webm -vcodec copy -an -f ivf VP8_OUTPUT.ivf
As far as I know IVF is the closest you can get to raw VP8.

Related

gstreamer-1.0 UDP receiver test pipeline

I want to receive an UDP video stream with gstreamer. Well, the final goal is to play it into a QML page, which in turn use gstreamer as backend.
Thus, first I want to test at the low-level.
Opening the stream with VLC reveals:
MPEG-1/2 Video (mpgv)
720x576
50 fps
Planar 4:2:0 YUV
Because I'm running a custom Linux system I'm not sure if I have all the gstreamer plugins I need.
I have:
# gst-inspect-1.0 | grep mpeg2
libav: avenc_mpeg2video: libav MPEG-2 video encoder
libav: avdec_mpeg2video: libav MPEG-2 video decoder
omx: omxmpeg2videodec: OpenMAX MPEG2 Video Decoder
# gst-inspect-1.0 | grep udp
udp: udpsink: UDP packet sender
udp: multiudpsink: UDP packet sender
udp: dynudpsink: UDP packet sender
udp: udpsrc: UDP packet receiver
What is the minimum pipeline I can use to receive this UDP stream?

Stream webcam video with Gstreamer 1.0 over UDP to VLC player

I'm trying to stream a webcam video with gstreamer 1.0 over UDP. This is the command I used:
gstreamer-1.4.0$ gst-launch-1.0 -v v4l2src device=/dev/video1 ! "image/jpeg,width=1280, height=720,framerate=30/1" ! rtpjpegpay \ ! udpsink host = 10.234.2.65 port = 5000
I got receiving via VLC player working with gstreamer 0.1 using an sdp file as explained here.
How do I achieve the same with gstreamer 1.0?

IP camera with RTSP on the web, RED5 and ffmpeg

i have a ip camera with rtsp protocol and i want to stream on the web using flash video. I know i can use vlc but i do not want to use that.
I installed red5 and ffmpeg for convert RTSP to RTMP
ffmpeg -i "rtsp://46.13.85.43:8020/ch0.h264" -f flv -r 25 -s 640x480 -an "rtmp://localhost/live"
and result is: UDP timeout. retrying with TCP
Any idea where is the problem ?
You have to specify that tcp protocol is used, or at least that helped me. Please add this parameter -rtsp_transport tcp to your ffmpeg command.

rtmpt protocol dump handshake error

When I try to dump rtmpt protocol with rtmpdump in Ubuntu, I got this error:
ERROR: RTMP_Connect1, handshake failed.
I would like to dump:
rtmpdump -v -r "rtmpt://37.130.228.52:80/atv/atv3"
I solved the problem. First of all the ip addresses for rtmp url was changing between few ip addresses.When I try the other ip numbers it was connecting to the rtmp but it was being rejected instantly. This was due swf verification, that is some rtmp urls also needs swf verification. Hence, when I typed as follow it successfully play on vlc player.
rtmpdump -v -r "rtmpt://..../atv/atv3" -s http://....swf?i=1 | vlc -
Next problem is that I want to play this rtmp with avconv/avplay not with vlc player. I could not give swfurl parameter succesfully in avplay. Instead this we can also dump with rtmpdump first and pipe it with avplay or avconv but I could not achieve this as well.
Edit: Second problem is solved with
rtmpdump ...... | avplay -i pipe:0

Livestream with crtmpserver - I can't find the live file

I use crtmpserver to make my RTMP server. I use Adobe Flash Media Live Encoder 3.2 to publish the livestream to the server. It is OK. I use a webflash player to receive the live stream. It is OK.
Now, I want to find the live file in the server, but I can't find the file. Which folder is the livestream?
If you want to stream a .flv file:
In every crtmpserver application there is a property called mediaFolder that by default refers to folder media.
mediaFolder="./media",
Then the streaming URL of the file is as:
rtmp://<server IP address>/<application name>/<file name>
If you want to stream a live stream:
When you define an stream acceptor in the acceptors section, you can specify the name of the stream by localStreamName as:
{
ip="0.0.0.0",
port=9005,
protocol="inboundTcpTs",
localStreamName="tcpchan5"
},
Then the URL of this stream is as:
rtmp://<server IP address>/<application name>/tcpchan5
To receive the input stream and feed the RTMP server, you may use FFmpeg:
ffmpeg -i <input_stream> -vcodec libx264 -s 320x240 -vb 512k -async 1 -acodec libvo_aacenc -ab 32k -ac 1 -f mpegts tcp://<server IP address>:<server feed port>
For example:
ffmpeg -i udp://224.11.11.11:2000 -vcodec libx264 -s 320x240 -vb 512k -async 1 -acodec libvo_aacenc -ab 32k -ac 1 -f mpegts tcp://127.0.0.1:9000