- Find a large video file (with audio) that can be both segmented and seek-split.
- Small file tested already and split-time difference was negligible.
- Compare the time it takes to segment to the time it takes to seek-split (with and without multiprocessing).
- Look into threading to increase FFmpeg performance: see this.
- By default, ffmpeg uses the optimal thread setting but effectiveness varies depending on the codec used.
- Test more file types and multiple files of the same type.
- Table of files/filetypes tested.
- Find which chunking methods work / work best for different file formats.
- The .mov files tested so far cannot be segmented, but the are from the same source (harmonic).
- If no segmented .mov file can be found, it is safe to assume video files of this type cannot be split in this way and the error check should be bypassed.
- Find a threshold for chunking; get enough data to graph chunked transcoding vs singleton transcoding for different file sizes.
yuv420p
is required for video player compatibility.- Sequential seek-splitting takes longer than segmenting.
- It is probably a bad idea to have each worker seek-split a file for its chunk. While the workers would have their respective chunks immediately after splitting, the entire file will have to be sent to each worker!
- Using a manifest file might come in handy: https://github.com/c0decracker/video-splitter
- FFprobe Tips
- Concatenating media files
- Creating multiple outputs
- Understanding screen resolution and aspect ratio
segmenting
Using the stream segmenter to chunk a file. This can be performed with one command:
ffmpeg -i input.ext -c copy -f segment -reset_timestamps 1 -map 0
seek-splitting
Chunking a file by seeking a start position and setting a read duration. This is performed with multiple commands:
ffmpeg -ss 0 -t 30 -i input.ext -c copy
ffmpeg -ss 30 -t 30 -i input.ext -c copy
ffmpeg -ss 60 -t 30 -i input.ext -c copy
...