-
-
Save millsoft/8a3deee6d2e2e0732f6429355120e0c4 to your computer and use it in GitHub Desktop.
Encoding a file as a Youtube video - https://www.youtube.com/watch?v=hyqLv2_zBdA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Encode inputfile.tar.gz as a series of video frames | |
# Frames are written to frames/frameNNNN.png | |
from PIL import Image | |
with open('inputfile.tar.gz', 'rb') as f: | |
data = f.read() | |
WIDTH = 120 | |
HEIGHT = 90 | |
CHUNK_SIZE = int((WIDTH * HEIGHT) / 8) | |
chunks = [] | |
offset = 0 | |
while offset < len(data): | |
chunks.append(data[offset:offset+CHUNK_SIZE]) | |
offset += CHUNK_SIZE | |
for frame_num, chunk in enumerate(chunks): | |
padded_chunk = chunk + (b'\0' * (CHUNK_SIZE - len(chunk))) | |
img = Image.frombytes('1', (WIDTH, HEIGHT), padded_chunk) | |
img.save('frames/frame%04d.png' % (frame_num + 1)) | |
# Encode as video with: | |
# ffmpeg -i frames/frame%04d.png -vf scale=1440:1080 -sws_flags neighbor -vcodec ffv1 output.mkv | |
# Decode the resulting downloaded video with: | |
# ffmpeg -i downloaded.mkv -vf scale=120:-1,eq=contrast=10 -sws_flags neighbor -pix_fmt monob -f rawvideo result.tar.gz |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
youtube-dl -o - https://youtu.be/hyqLv2_zBdA | ffmpeg -i - -vf scale=120:-1,eq=contrast=10 -sws_flags neighbor -pix_fmt monob -f rawvideo yt_dl.tar.gz |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment