video file conspiracy

First, kleptocrats leading armies of useful idiot statists made reality too terrible to live in, leaving only an artificial digital world to escape too. But I'm learning that even this place isn't safe from their monopolistic sadistic trolling. I'm currently referring to movie/video files, but pick any topic anywhere and it has been infected. So a video file... all that is needed is to play a sequence of images at a desired speed and start an audio file playing at the very beginning. This should be easy right, I mean there already exists mp3 files and jpg files, nice compressed small sizes. Wrap both up in a single file, done. But that's not how it works. Instead we have "standard" files, MOV, MP4 (MPEG4), AVI, WMV, FLV, 3GP, MPEGPS, WebM, chosen by the lizard people themselves, youtube (google, aka alphabet... the entire alphabet). These files are designed to APPEAR to be open, but when you dig deep you discover that it's impossible to actually create code for them, because they don't want you to unless you're an insider. So they intentionally obfuscate both the file format itself and the documentation. Everything is like this, even little endian was chosen to make everything backwards, combine that with a million other wrenches in the system and you simply can't use it, unless you have the secret keys only given to insiders, as designed. If you can even find any obfuscated specifications, it often mentions somewhere that some bytes are "reserved", like bytes with secret information, hmm, government backdoor information? Maybe those bytes hold an image of the last time you took a poop taken through the secret camera in your smoke detector? Pay no attention to those bytes though, they're reserved. So you can't deal with these file formats directly, as designed, and you have to use a library and stackoverflow (another NWO site that is designed to close questions proportional to how useful they are to prevent answers) mentions opencv. So you look at opencv and discover that the video library... is some place that is all about facial recognition and total orwellian stuff, of course. So basically if you want to code frames into a video you have to create an entire file format yourself from the ground up instead of using any of the deliberately broken "standard" "solutions" the corporatocracy (adobe, microsoft, etc) provides. Even then it is likely to be infiltrated by the lizard people. So how to program video.. you can't. Use a 3rd party facial recognition library or unusable ffmpeg or unusable this or unusable that. This allows hollywood and other big players to monopolize moving visuals and audio. All well, I guess there's always operant conditioning IDLE genre videogames to spend all one's time playing.
goodness @ rant.

Look. Jpeg is totally open. It is just a discrete cosine transform that drives a great many of the values in the file to zero which are then redundant and highly compressible. Its a crude form of the more advanced wavelet compression that is doing the same thing but much more complex as that fits the waveform to the data instead of using a generic one.

Mpeg is just taking the difference in frames. If you have a video of a fireplace, only the fire is changing, all the other pixels are the same and don't need to be stored again. Its not quite that simple but its pretty close. Every so often it grabs a new base frame (a full image). the images are jpeg compressed. The more advanced techniques follow the same ideas mostly, just doing it better with various techniques.

Endian is just for integers and it is really simple. in hex, abcd is stored as cdab. How hard is that to understand? Its aggravating, but the reversed cpus even have a cpu instruction to flip endian so you don't have to code for it. Larger values are the same.. ab cd ef 12 is 12 ef cd ab. Nothing to see here. This stuff is ancient, and there were reasons given in the early 80s when it was done. Now it is done simply for backwards compatibility.

I won't deny that video compression is difficult but a trained monkey can use the existing free libraries to do it or you can indeed write your own. Yours won't be as good as the existing as the people doing it have been doing it for decades and have some learning curve on you. Its like trying to reinvent the wheel with a rock and a stick in hand thinking you can out-do goodyear after a month or 2 of hard work. If you don't like the existing libraries, DIY... there are tons and tons and tons of sites and books on the subject of data compression in general and image/video/sound specifically.

Ranting about it won't teach you anything. Learn by doing. Then figure out a way to do it better. Then you will be the insider and industry leader. Or find something that hasn't been done to death and invent that... every other person in the 90s was doing video compression, its sort of a done deal barring some extremely ground breaking technique from some genius spending half a lifetime on it.


Last edited on
I mean there already exists mp3 files and jpg files, nice compressed small sizes. Wrap both up in a single file, done

Standards develop over time, and there is a bunch of complexity that goes along with it. For example, do you think the creators of NTSC just randomly decided to make the framerate 29.97 fps? No, they had to work with what could be done with bandwidth and communications methods that already existed.

Standards like vorbis/webm are open. I believe they are under the Matroska format, which is an open standard and free. Formats like MP3, however, are proprietary, but they have bad compression anyway. And there's still plenty of resources on it, so you can still see exactly is being written, or write your own methods.

These files are designed to APPEAR to be open, but when you dig deep you discover that it's impossible to actually create code for them, because they don't want you to unless you're an insider.

Bullshit. Yes, it certainly is more complicated than "draw pixel[y][x] at frame [z] {R, G, B}". Like I said, standards develop over time, and it can be a complicated process. There are plenty of disagreements in how to handle certain algorithms, or optimizations, etc. Some of those disagreements is what lead to formats like webm to be created. These are not meant to be secrets. If you took the time to learn it, you could re-create it exactly. But why re-invent the wheel?

Documentation for any popular file format does exist.

Using your logic, I could make the same argument about C++ being over 1000 pages long. Surely it was intentionally made this long and complicated just to prevent the average Joe from writing his own compiler! GCC probably puts backdoors into all compiling! (Just kidding, we know it only puts in NSA backdoors when you compile undefined behavior. And then the NSA delivers a pizza to your house. There's literally nothing saying GCC can't do this.)

You could have absolutely uncompressed, easy-to-write formats, like you could have a BMP every frame, with a PCM WAV file to go along with it. They would grow to huge file sizes, though. Those standards you list compress better than just having raw jpegs stabled together at 60 fps, have less ringing artifacts than jpeg, and have set specifications on a whole bunch of other things, for example how to be loaded/streamed over HTTP, or where the "Artist" name in the metadata should be. You could write your own file format that would be .JPGs stabled together at a set fps, it wouldn't be too hard. Some thing like https://en.wikipedia.org/wiki/Motion_JPEG

government backdoor information

Yes, Windows does have backdoors (since like '98). Probably other OS's, too, and people have probably been paid to try to sneak stuff into some hardware processors. I'm afraid that part of perceived encroachments is true. But to the best of our knowledge, there is no backdoors to software such as the linux kernel. But regardless, that has nothing to do with file formats, what would it even mean to put a backdoor into an unencrypted file format???
it often mentions somewhere that some bytes are "reserved", like bytes with secret information, hmm, government backdoor information

Oh, I see. Particular bytes or fields might be reserved to allow for future extensions, or program-specific customizations. The logical jump from having "reserved bytes" to "that means the program is putting my personal information into the file" is quite vast.

Little vs Big endian is another example of two different groups simply trying things in different ways, and both got popular separately. It isn't some intentional thing to make things more complicated.

Don't get me wrong, it's absolutely true that governments would love to put surveillance everywhere and use excuses like Operation Gladio to implement those for "security" reasons to maintain power and control. It's right to be wary of things when you have no idea how they are in the inside. But equating that to saying the Vorbis file format is intentionally complicated in order to keep tech giants like Google in power, or for the government to spy on you, is, in my opinion, ridiculous.

Maybe you should go into digital forensics, cryptography, and security topics/degrees, if you want to uncloud some of this. I certainly wish I knew more about it. Also, good luck (and I hope the statist lizard people don't violate your NAP any further).

Edit: Obligatory xkcd comic
https://xkcd.com/927/
Last edited on
Well here is my crappy attempt at doing anything in AVI in c before I gave up (it has useless structs and puts the file in a global array of bytes). I really hate "coding" this stuff, it's a big pile of broken parts, your hand is writhing in maggots as you click the mouse around a million false leads, you have to assemble a boeng 747 cockpit all at once and finally see it fail to work if you ever reach the end, or even the end of the beginning.

I was using this horrible avi information:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd318189(v=vs.85).aspx
By the way it seemed to print out "RIFF" and stuff forwards, not backwards, all well who cares. Look at this crap:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd318183(v=vs.85).aspx
stupid "DWORD"s. What did microsoft look at "int" and say that's not copyrightable enough, let's make up a new thing called DWORD. Then they put a struct... (left,right,top,bottom) right inside of the struct. What the hell is that supposed to be made of? So the file has bytes like "dwords" and then a struct just sitting next to the bytes? Then you would think that a video file has image frames, like this would be one of the essential most important parts to focus on. When they get to it, they're just like oh yeah, put the image "data" over here somewhere I guess. Oh really? Like a big list of pixels? Do they have alpha values? Or are they bitmap files? Jpgs? They surrrre focus on that amazing innovation of FOURCCs though, stupid reversed words that don't even print reversed when you print them.

"a trained monkey can use the existing free libraries to do it"
All I want to do is feed a sequence of images and an mp3, or maybe a wav if its a bastard and hates mp3s, and a video speed that matches the mp3 song speed, do you know which library, for the least shitty library for the least shitty file type perhaps, that a trained monkey can use?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <stdio.h>
unsigned char bytes[115778890]; //large memory arrays hafta be global or static or it crashes. u can't pass it to a function either, or values are wrong seemingly. make larger than needed with sublength?
unsigned char charret[128]; //functions can "return" char arrays to this global, since returning arrays in c sucks. (or can maybe return in a struct)

int concat(int istart,int nbytes){ //little endian right to left byte. makes stupid FOURCC things i guess
  int total=0;
  for(int i=0;i<nbytes;i++){
    total=total+ ( (int)bytes[istart+i] << i*8 );
  }
  return total;
}
void unconcat(int n){
  charret[0]=(char)(n>>0);
  charret[1]=(char)(n>>8);
  charret[2]=(char)(n>>16);
  charret[3]=(char)(n>>24);
}
struct Avi{
  char header[4];//={'R','I','F','F'};
  int filesize; //total-8bytes
  char filetype[4];//={'A','V','I',' '};
};
struct Avimainheader{ //data applies to whole file
  char fcc[4];//={'a','v','i','h'};
  int cb; //total-8bytes
  int dwmicrosecperframe; //microsecs betw frames
  int dwmaxbytespersec; //bytes per sec as specified by params in main & stream header chunks
  int dwpaaddinggranularity; //pad data bytes to multiples of this value
  int dwflags; //bitwise combo of ints chars or bools? copyrighted,hasIndex,interleaved,mustuseIndex,realTimeVideo
  int dwtotalframes; //n frames
  int dwinitialframes; //initial interleaved frame. non-interleaved=0
  int dwstreams; //n streams (audio+video = 2 etc)
  int dwsuggestedbuffersize; //size of largest chunk in file. interleaved=sizeEntireRecord
  int dwwidth; //pixel width
  int dwheight; //pixel height
  int dwreserved[4]; //set array to zero...
};
struct Avistreamheader{ //data applies to 1 stream (each stream needs avistreamheader)
 char fcc[4];//={'s','t','r','h'};
 int cb; //total-8bytes
 char fcctype[4]; //auds/mids(midi)/txts/vids
 char fcchandler[4]; //optional codec for audio or video stream
 int dwflags; //bit flags. set to zero?
 short wpriority; //ex. multiple audio streams, one with highest priority=default
 short wlanguage; //language tag
 int dwinitialframes; //how far audio ahead of video in interleaved files (about 0.75 secs)
 int dwscale; //dwrate/dwscale=samps per sec (=frameRate for video, =sampleRate for wav) mp3?
 int dwrate; //see above
 int dwstart; //starting time, usually zero, or can have delay
 int dwlength; //length of stream defined by dwrate & dwscale
 int dwsuggestedbuffersize; //largst chunk in stream. or zero if u don't know(slower).
 int dwquality; //0-10,000 passed to compression software. -1 for default.
 int dwsamplesize; //0 if can vary (usually 0 for video), but each sample must b in separate chunk. if nonzero multiple samples (ex video frame) can b in same chunk. audio-same as nblockalign of waveformatex structure
 struct{
   short int left;
   short int top;
   short int right;
   short int bottom;
 }rcframe; //video/txt destination rect inside dwwidth & dwheight
};
struct Bitmapinfoheader{//for video streams
  int bisize; //n bytes - size of color table & color masks (if appended to end of structure)
  long biwidth; //pixel width of bitmap
  long biheight; //pixel height of bitmap
  short biplanes; //n planes for target device. must be 1.
  short bibitcount; //bits per pixel (uncompressed=average num bits/pix, compressed=implied bit depth of uncompressed image after image decoded
  int bicompression; //compressed=fourcc little endian (YUYV=VYUY),uncompressed=BI_RGB or BI_BITFIELDS
  int bisizeimage; //bytes of image. can be 0 for uncompressed rgb bitmaps
  long bixpelspermeter; //horizontal resolution of target device for the bitmap
  long biypelspermeter; //vertical resolution of target device for the bitmap
  int biclrused; //n color indices in color table that are actually used by bitmap
  int biclrimportant; //n color indices that are important. zero=all important
} bitmapinfoheader;
//tons of shit remarks at https://msdn.microsoft.com/en-us/library/windows/desktop/dd318229(v=vs.85).aspx

int main () {
  //int* p; (put * near int, "pointer to int"). q=p; now have 2 shallow references to same data. pointer must have pointee. function pointer param can take list1 OR list2 reference (asOpposed2 implicit modify harcoded global)
  //'b'+5 answer auto converts smaller byte width to larger one.
  //binary trees or linked lists might be useful http://cslibrary.stanford.edu/
  int i;
  FILE* file = fopen("test.avi", "rb");
  fseek(file, 0, SEEK_END);
  long int size = ftell(file);
  printf("file has %u bytes\n",size);
  fseek(file, 0, SEEK_SET);
  size=115778890;
  //static unsigned char bytes[115778890]; //wont work, pass to function=wrong values. malloc might work (heap instead of stack, didn't try yet). or a 2d list to divide large array to sections so not 1 huge memory block.
  fread(bytes,1,size,file); //puts file into global bytes array
  for(i=0;i<6000;i++){
    printf("%c",bytes[i]);
  }
  int c=concat(4,4);//((int)bytes[7]<<24) + ((int)bytes[6]<<16) + ((int)bytes[5]<<8) + ((int)bytes[4]);
  printf("concat%u\n",c);
  unconcat(c);
  printf("hi %c %c %c %c hi",charret[0],charret[1],charret[2],charret[3]);
  fclose(file);
  //fputc(one character)

  return 0;
}
I did mine back when with avi (which is little more than an RGB array frames following a header that tells it the frame size, color depth, and such) run thru some freeware dll that applied H.264 compression to it... I don't recall the name I never fooled with sound though.

everything you are asking to do can be done with existing editors better than you can re-invent it. If you want to learn, your attitude seems a little off. If you want results, use an existing program. I was able to make a video of stills with vlc player if that is still around.
Ok, I downloaded what I assume to be the thing that a trained monkey can use, ffmpeg, the unholy thing that I previously deemed unusable after a whole lot of sudo get or whatever calls in the command prompt (where you can't copy paste any examples so you have to hand type a long line only to find out it doesn't work), but I'll try again. So I download this thing, it's like double zipped in tar.bz2. Luckily I have 7zip and double unzip it. So now I have a folder full of crap files. So I copy paste it into c: where I can look at it every time I enter my main c: folder and get shivers thinking about how much time this program has spent trolling me. So I'm like, okay, I guess it's "installed" or something, so I open command prompt and type the wonderful 1st example from here:
https://www.tecmint.com/ffmpeg-commands-for-video-audio-and-image-conversion-in-linux/
ps. I really don't think sites like the above are even written by humans anymore. Like every website is probably chatbot text automated by half retarded bots that google owns, that's why the whole internet sucks. So I look at this line:
$ ffmpeg -i video.flv -hide_banner
and I'm like, yeah.. a line starting with a dollar sign, I totally bet that will work. So luckily I already knew to type cd.. a bunch of times in command prompt to get to c: instead of c:/users/user/stupid/dumb/user/mydocuments/user32 or something which is the default. Oh god, and keep in mind I have to do this on a computer that inside an agenda 21 coffin size room since the economy is rigged by the corporatocracy and homesteading is illegal, so external reality sucks and the fake reality inside the computer sucks. Well I type that and hit enter, awaiting being trolled, and am trolled with the following:
"'$' is not recognized as an internal or external command, operable program or batch file."
Oh.. you don't say.
Typing dir says there is "ffmpeg-3.1.4" in there. Hmm..
C:\>ffmpeg-3.1.4
'ffmpeg-3.1.4' is not recognized as an internal or external command operable program or batch file
C:\>cd ffmpeg
the system cannot find th path specified
C:\>cd ffmpeg-3.1.4
the system cannot find the path specified
Is my entire operating system hijacked by trolls? This is the truman show isn't it, they're laughing at me right now. I think I know how to make it work, you need a hammer. Any trained monkey would be eating faces by now. The message is just that you shouldn't ever code or do anything creative because you can't, just play videogames and hopefully time will fast forward until you don't exist.
Your last post just tells us that you have no idea about the command line. Nothing you described is unconventional. I guess the documentation assumes you're aware of some common conventions - you are installing a command-line program, after all. (Or maybe you only downloaded the source code.)

One convention you apparently haven't been exposed to before is the dollar sign. It's supposed to represent your shell prompt. It's there to tell you that the text after it needs to be entered into the command line.

Further, if you're using Windows, why are you expecting Unix commands (sudo) to work?

(Can't you paste into the windows command line with right-click?)
Last edited on
Ha ha, that's so cryptic, instead of typing "enter at command prompt:" they type "$". That won't confuse any noobs. Anyway I remembered that you have to type:
cd c:\ffmpeg-3.4.1
so now command prompt says c:\ffmpeg-3.4.1>
But of course when I type ffmpeg -i video.flv -hide_banner there it says:
'ffmpeg is not recognized as an internal or external command, operable program or batch file. I knew to omit the dollar with your help though, so that is one hurdle down out of 7 million. And wow you can right click paste, didn't know that. Can't copy from there though lol, so I had to hand type the above line in this message. I think I just spent so much energy failing reading all this file type stuff that I don't have any energy left to bother with something that has previously trolled me.
I was trying matroska too, the first google result
https://www.matroska.org/technical/specs/index.html
says "This document is not the real format specification." on the very first line. At least they break it to you right away.
I think you can copy with left-click + drag (to select) and then the enter key. I'm not certain though, I don't use Windows any more, because it makes these sorts of things more difficult than they should be (why couldn't they stick with CUA?).

What exactly did you download?
you can drag and drop into a win console but if its a file it tries to open or execute it. If its a folder its just the path, without the cd.
you need to type cd then drag & drop a folder or a file, if its a file delete the file name back to the folder.

you can also run the command executable from the gui in windows, if it doesn't need any command line parameters.


if its actually unix code/ files, you either need to rebuild it for windows with something like Cygwin or re-download a win version.
Last edited on
I would use gnu/linux but trying to install it was similarly fail-themed, maybe the graphics card is why it didn't work, or maybe a million other potential reasons. Anyway I downloaded the most obvious big green download link from
https://ffmpeg.org/download.html
which was ffmpeg-3.4.1.tar.bz2
That's the source code. At least it was for me.
Rather than trying to build it yourself (which is only likely to cause more difficulties), download the appropriate binary:
https://ffmpeg.zeranoe.com/builds/

Once you grab that and unzip it, you'll find ffmpeg.exe in the binaries folder (named bin).
Last edited on
That... that seems to have worked. Something works. So for any losers like me out there trying to get it to work, I downloaded above (3.4.1, 64bit, static), unzipped. pasted folder into c:. Then click start/ type cmd to get to command prompt. type cd.. until it says c:. Type dir so you can see what the folder is called and type something like:
c:\>cd ffmpeg-3.4.1-win64-static. type cd bin.
(or tried drag dropping the folder into the command prompt as mentioned above and that works too)
now when i type ffmpeg -i test.avi -hide_banner (with test.avi in bin folder)
it successfully sees the file (but haven't tried anything else yet).
Thanks.
Last edited on
Somewhat-related tip: In the standard Windows Explorer, you can type "cmd" into the directory path bar at the top of the window, press enter, and have cmd start at the chosen directory.

And to open up explorer.exe at the current command-line directory, you can type start .

Matroska as the general file format that can hold various different types of containers. If I'm not mistaken, I believe Extensible Binary Meta Language is used, which is apparently similar to XML. This happened because of a disagreement in the Multimedia Container Format. To re-create that yourself from scratch would be like writing your own XML parser... I mean it's possible, but I agree it's something complicated I would never want to do.
cd \

is c:\ root shortcut to typing cd.. 20 times.

I keep a cmd.bat file on my desktop to open a console. IMHO programmers should learn dos and unix commandline basics, including how to write a basic batch/shell script. A few of the commands are just pure gold for us, like program > filename (redirect all output to a file for debugging!). I actually have a dos 6.2 commandline book somewhere.
Last edited on
Somewhat-related tip: In the standard Windows Explorer, you can type "cmd" into the directory path bar at the top of the window, press enter, and have cmd start at the chosen directory.

Woah... I've been using Windows professionally for over a decade, and I didn't know that!

Thanks :)
Registered users can post here. Sign in or register to post.