Implementing video streaming using ffmpeg -- 3

Job ID: 32251399

Budget: $10 – $30 CAD

// client

#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#define MAX 80
#define PORT 8080
#define SA struct sockaddr

void SendMessage(int sock);
void RecieveFile(int sock);

int main(int argc, char const* argv[]) {

struct sockaddr_in serverAddress; // holds server address

printf("Creating Scoket...\n");
int sock = socket(AF_INET, SOCK_STREAM, 0); // create socket

if(sock == -1) {
printf("Socket Creation: Fail\n");
exit(0);
}
printf("Socket Creation: Complete\n");

serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(PORT);

// Setup serverAddress IP
if (inet_pton(AF_INET, "192.168.2.15", &serverAddress.sin_addr) <= 0) {
printf("Invalid address\n");
exit(0);
}

//Connect to remote server
printf("Connecting to Server...\n");
if(connect(sock, (struct sockaddr* )&serverAddress, sizeof(serverAddress)) < 0)
{
printf("Connection to Server: Fail\n");
exit(1);
}
printf("Connection to server: Complete\n");

//SendMessage(sock);
RecieveFile(sock);

close(sock);

//system("ffplay Keyboard.mp4");

return 0;
}

void SendMessage(int sock) {
char message[MAX];
int n;
for (;;) {
bzero(message, MAX);

printf("Message: ");
n = 0;
while ((message[n++] = getchar()) != '\n')
;

write(sock, message, MAX);

if ((strncmp(message, "exit", 4)) == 0) {
printf("Client Exit...\n");
break;
}

bzero(message, MAX);
read(sock, message, MAX);

printf("From Server : %s", message);
}
}

void RecieveFile(int sock) {
FILE *fp;
char *fileName;
char buffer[MAX];
int n;

read(sock, buffer, MAX);
fileName = buffer;

printf("File name recieved: %s\n", fileName);

fp = fopen(fileName, "wb");
if (fp == NULL) {
perror("[-]Error:");
exit(1);
}

bzero(buffer, MAX);

for(;;) {
n = recv(sock, buffer, MAX, 0);
if (n <= 0) {
break;
}
fwrite(buffer, 1, n, fp);
bzero(buffer, MAX);
}

fclose(fp);
}




Using demuxer
To do :
• Read in the video frames sent in by the server
• Display these frames to the user
Related categories: C Programming Python Linux Shell Script C++ Programming