Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: x265/IFMED
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.1
Choose a base ref
...
head repository: x265/IFMED
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 2 commits
  • 1 file changed
  • 1 contributor

Commits on Apr 11, 2015

  1. Encarta

    Anime4000 committed Apr 11, 2015
    Copy the full SHA
    f23e5dd View commit details

Commits on Apr 22, 2015

  1. Correction

    Thanks Neil N. Prasad
    Anime4000 committed Apr 22, 2015
    Copy the full SHA
    6f6392f View commit details
Showing with 20 additions and 12 deletions.
  1. +20 −12 readme.md
32 changes: 20 additions & 12 deletions readme.md
Original file line number Diff line number Diff line change
@@ -2,52 +2,60 @@
## What is this?
This command-line tool allow you encode video over network (via pipe).

Mostly all encoder's having support `stdin` and `stdout`, most popular tool is FFmpeg
Most encoder's support `stdin` and `stdout`, most popular tool is FFmpeg

## How to use?
### System Requirement
Make sure your computer meet this specification
Ensure your computer meets the following specification:

1. .NET Framework 4.0 (Windows) or Mono Runtime (Linux)
2. Windows Vista and above or Ubuntu 14.04 and above
3. Intel Core i5 (1st Gen) or AMD AthlonII X2
4. 1GB RAM for handling RAW frame

### Example Command:
### Example
```
Internet Friendly Media Encoder Distribution - by Anime4000 (x265.github.io)
Version: 0.1.5579.20146 compiled on 11/Apr/2015 (AMD64/Windows RELEASE)
Lets you encode video over network, splits frames for each server
and equally distributes jobs to available workers in parallel.
Usage: ifmed [--help] [-s/-c] [-h ip] [-p port] [< "nope.avi"]
ifmed [--help] [-s/-c] [-h ip] [-p port] [| ffmpeg.exe]
Options:
--help Display help
-s Run as server mode
-c Run as client mode
-s Run as server
-c Run as client
-h IP Address (Default: 127.0.0.1/All interface)
-p TCP Port (Range: 1024 - 65535. Default: 4000)
- stdin/stdout
Example:
Client mode, sending stream
Client mode, distribute stream
ifmed -c -h 192.168.1.2 - < "nope.avi"
ifmed -c -h 192.168.1.2 -p 4001 - < "nope.avi"
avs2pipe video "nope.avs" | ifmed -c -h 192.168.1.2 -
Server mode, receive stream
Server mode, encode stream
ifmed -s - | ffmpeg -i - nope.mp4
ifmed -s -h 192.168.1.2 - | ffmpeg -i - nope.mp4
ifmed -s -h 192.168.1.2 -p 4001 - | ffmpeg -i - nope.mp4
Server mode, receive stream with specific time and duration
ifmed -s - | ffmpeg -i - -ss 120 -t 200 nope.mp4
Server need to run first before client.
Pipe over WAN is not recommended unless you have 10mbps and VPN (encrypt).
Sending RAW stream over network is not recommended unless you have 10Gbps.
Note:
1. Server needs to be run prior to client.
2. Pipe over WAN is not recommended unless
you have speeds exceeding 10mbps with VPN (encryption).
3. Sending RAW stream over network is not recommended unless you have 10Gbps.
```

### Detailed Explanation
#### Server mode
Server mode is a machine only doing encoding, before client start, server need to run first and awaiting connection.
Server mode is when a machine only does encoding. Before starting a client, ensure the server is running and awaiting connection.

FFmpeg:
```
@@ -75,7 +83,7 @@ user@host~# ifmed -s - | ffmpeg -i - -pix_fmt yuv420p -f yuv4mpegpipe -ss 120 -t
```

#### Client mode
Client mode is the host that sending video data to encoding server, first you need a server running first, see below.
Client mode is the host that sending video data to encoding server. first you need a server running, see below.

To send a video (localhost default):
```