3 months agoMerge pull request #29 from 404NetworkError/input-options
Ben Tasker []
Merge pull request #29 from 404NetworkError/input-options

Add FFMPEG input options as an environmental variable - `FFMPEG_INPUT_FLAGS`

3 months agoUpdate README to include input flags env variable
404NetworkError []
Update README to include input flags env variable

3 months agoAdd FFMPEG_INPUT_FLAGS env variable for ffmpeg
404NetworkError []
Add FFMPEG_INPUT_FLAGS env variable for ffmpeg

7 months agoTidy up README
B Tasker []
Tidy up README

14 months agoAdd notes on automation
B Tasker []
Add notes on automation

16 months agoRemove debug statement
B Tasker []
Remove debug statement

16 months agoYeah, I totally forgot to commit this fix for HLS-27 :(
B Tasker []
Yeah, I totally forgot to commit this fix for HLS-27 :(

Adjusts the path passed into {{appendVariantPlaylistentry}} so that it doesn't include the resolution (as the manifest filenames currently don't)

16 months agoLinear support for HLS-27 has now been tested, so update README to note the resolution functionality.
B Tasker []
Linear support for HLS-27 has now been tested, so update README to note the resolution functionality.

16 months agoImplement ability to specify resolution with bitrates. See HLS-27
B Tasker []
Implement ability to specify resolution with bitrates. See HLS-27

This is just a first pass at this, and I fully expect it to break in a variety of weird and wonderful ways.

There's also some reliance on globals that I don't like (see comments in file), so that's still in need of tidying up. We should probably also think about testing that none of the given resolutions are higher than that of the source.

But, you can now pass a resolution in as part of the bitrate string: {{bitrate-widthxheight}}

As an example, ran the following test encode
{noformat}$ ./HLS-Stream-Creator.sh -i testvid.mp4 -b 2744,1000-1280x720 -s 10
{noformat}
The original is 1080p at 2744k so that should give us a 1080p rendition as well as a 720p.

Master playlist is generated correctly
{noformat}$ cat testvid_master.m3u8
testvid_2744.m3u8
testvid_1000-1280x720.m3u8
{noformat}

Segments report approximately the right bitrate (used vbr to speed up the test), and also the correct resolution
{noformat}$ ffprobe -i testvid_1000_00001.ts
Input #0, mpegts, from 'testvid_1000_00001.ts':
Duration: 00:00:13.70, start: 12.890956, bitrate: 989 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x101](und): Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 100 kb/s

$ ffprobe -i testvid_2744_00001.ts
Input #0, mpegts, from 'testvid_2744_00001.ts':
Duration: 00:00:13.70, start: 12.890956, bitrate: 2335 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x101](und): Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 100 kb/s
{noformat}

Not been tested with a linear stream yet (though it _should_ work)

16 months agoMerge branch 'master' of https://github.com/bentasker/HLS-Stream-Creator
B Tasker []
Merge branch 'master' of https://github.com/bentasker/HLS-Stream-Creator

16 months agoMake FFPMEG less verbose by default (the extra output is really annoying)
B Tasker []
Make FFPMEG less verbose by default (the extra output is really annoying)

19 months agoMerge pull request #20 from JapSeyz/master
Ben Tasker []
Merge pull request #20 from JapSeyz/master

Added -u, -k and -K flags

20 months agoAdded -u, -k and -K flags
JapSeyz []
Added -u, -k and -K flags


20 months agoUpdating README to note OS X specific caveats (from #15)
Ben Tasker []
Updating README to note OS X specific caveats (from #15)

20 months agoMerge pull request #18 from JapSeyz/patch-1
Ben Tasker []
Merge pull request #18 from JapSeyz/patch-1

Make OUTPUT_DIRECTORY play nicely with -S & -o

20 months agoMake OUTPUT_DIRECTORY play nicely with -S & -o
JapSeyz []
Make OUTPUT_DIRECTORY play nicely with -S & -o

The command:
`./segment.sh -i video.mov -s 4 -b 512 -t video -p video -S partials -o streams` would fail without this fix, as it would try to access streamspartials (notice the missing directory-separator).

and you would have to append the slash in your config and make the command look like this:
`./segment.sh -i video.mov -s 4 -b 512 -t video -p video -S partials -o streams/`

This fixes the issue, and you can now omit the last slash in the -o flag.

2 years agoSwitch variable name to something that isn't a command, as it was bugging me. HLS-21
B Tasker []
Switch variable name to something that isn't a command, as it was bugging me. HLS-21

2 years agoUpdated README to note the issue with aac being marked as experimental in some ffmpeg builds. See HLS-23
B Tasker []
Updated README to note the issue with aac being marked as experimental in some ffmpeg builds. See HLS-23

2 years agoUpdating output section to note existence of -o
B Tasker []
Updating output section to note existence of -o

2 years agoUpdate README to contain more information on encrypted streams (HLS-20)
B Tasker []
Update README to contain more information on encrypted streams (HLS-20)

2 years agoAdd some status output
B Tasker []
Add some status output

2 years agoAdjust encryption loop to ensure the IV is based on the segment number rather than a counter. HLS-22
B Tasker []
Adjust encryption loop to ensure the IV is based on the segment number rather than a counter. HLS-22

2 years agoUpdated README to reference encryption. See HLS-20
B Tasker []
Updated README to reference encryption. See HLS-20

2 years agoAdjust manifest filename in encryption. See HLS-20 and #15
B Tasker []
Adjust manifest filename in encryption. See HLS-20 and #15

The encrypt function assumed a single bitrate stream (not generated using a -b argument), have changed the way manifest files are located when we write key information into them.

Could be improved - we'll currently write into the master playlist too, which is harmless but unnecessary. Just didn't seem worth putting a check in to stop it

2 years agoFix issue with iterating over and encrypting segments when relative output dir is used. See HLS-20
B Tasker []
Fix issue with iterating over and encrypting segments when relative output dir is used. See HLS-20

Should still be considered a partial fix - need to correct a manifest filename

2 years agoPartial fix for #15 and HLS-20
B Tasker []
Partial fix for #15 and HLS-20

This commit adjusts the code path when bitrates are specified on the command line. to ensure that encrypt is called (wasn't before)

A second fix is needed to the manifest rewrite as it is currently looking for the wrong file (unless bitrates haven't been specified)

2 years agoMerge pull request #12 from stonio/patch-1
Ben Tasker []
Merge pull request #12 from stonio/patch-1

Set aac as default audio codec

2 years agoSet aac as default audio codec
stonio []
Set aac as default audio codec

2 years agoMerge pull request #11 from mrworf/master
Ben Tasker []
Merge pull request #11 from mrworf/master

Add more control to bitrate and encoding methods

2 years agoAdded more documentation for the new options
Henric Andersson []
Added more documentation for the new options

2 years agoAdded VBR, CBR and CFR style encoding as well as 2-pass
Henric Andersson []
Added VBR, CBR and CFR style encoding as well as 2-pass

Also added logic to support bitrate control for H265 since it needs more
parameters to guarantee that it sticks to the defined rates.

3 years agoRemoving nulls from BITRATE_PROCESSES to fix #9 / HLS-10
B Tasker []
Removing nulls from BITRATE_PROCESSES to fix #9 / HLS-10

3 years agoRevert "Reversing bitrate order as temporary workaround for #9 / HLS-10" - Full fix coming
B Tasker []
Revert "Reversing bitrate order as temporary workaround for #9 / HLS-10" - Full fix coming

This reverts commit 2711edfdc43678aa134523050a76690260f7f550.

3 years agoReversing bitrate order as temporary workaround for #9 / HLS-10
B Tasker []
Reversing bitrate order as temporary workaround for #9 / HLS-10

3 years agoMerge pull request #8 from skoushan/master
Ben Tasker []
Merge pull request #8 from skoushan/master

Fix typo in comment

3 years agoFix typo
Soheil Koushan []
Fix typo

3 years agoMerge pull request #7 from kavuri/master
Ben Tasker []
Merge pull request #7 from kavuri/master

Added AES-128 encryption to the generated files

3 years agoAdded support for live stream by adding a check for encryption
Sateesh Kavuri []
Added support for live stream by adding a check for encryption

Signed-off-by: Sateesh Kavuri <sateesh.kavuri@gmail.com>

3 years agoAdded AES-128 encryption to the generated files
Sateesh Kavuri []
Added AES-128 encryption to the generated files

Added switch -e to encrypt the segments. Followed the instructions
from here: http://www.barryodonovan.com/2010/08/30/http-streaming-with-encryption-under-linux-2

Signed-off-by: Sateesh Kavuri <sateesh.kavuri@gmail.com>

4 years agoAutomatically overwrite expired segments in live streams. See HLS-12
B Tasker []
Automatically overwrite expired segments in live streams. See HLS-12

4 years agoBugfix
B Tasker []
Bugfix

4 years agoMade EXT-X-ENDLIST addition conditional. See HLS-15
B Tasker []
Made EXT-X-ENDLIST addition conditional. See HLS-15

4 years agoRemoved bufsize as doesn't work on its own with some codecs
B Tasker []
Removed bufsize as doesn't work on its own with some codecs

4 years agoTerminated Live playlists with X-Endlist once transcode has completed. See HLS-15
B Tasker []
Terminated Live playlists with X-Endlist once transcode has completed. See HLS-15

4 years agoOoops. Bugfix for HLS-16
B Tasker []
Ooops. Bugfix for HLS-16

4 years agoUpdated README for HLS-16
B Tasker []
Updated README for HLS-16

4 years agoAdded ability to specify subdirectory name for segments. See HLS-16
B Tasker []
Added ability to specify subdirectory name for segments. See HLS-16

4 years agoTemporary solution to using FIFO input with ABR streams. See HLS-13
Ben Tasker []
Temporary solution to using FIFO input with ABR streams. See HLS-13

4 years agoUpdated README to reflect changes in HLS-9
Ben Tasker []
Updated README to reflect changes in HLS-9

4 years agoAllowed segment filename prefix to be specified. See HLS-9
Ben Tasker []
Allowed segment filename prefix to be specified. See HLS-9

4 years agoAllowed playlist prefix to be specified for HLS-9
Ben Tasker []
Allowed playlist prefix to be specified for HLS-9

4 years agoRemoved input file check for HLS-8
Ben Tasker []
Removed input file check for HLS-8

4 years agoCorrecting a live stream check. See HLS-6
Ben Tasker []
Correcting a live stream check. See HLS-6

4 years agoUpdated readme with section on Adaptive streams. See HLS-6
Ben Tasker []
Updated readme with section on Adaptive streams. See HLS-6

4 years agoEnabled parallelisation of Adaptive stream encoding. See HLS-6
Ben Tasker []
Enabled parallelisation of Adaptive stream encoding. See HLS-6

4 years agoImplemented sequential transcoding of adaptive streams for HLS-6
Ben Tasker []
Implemented sequential transcoding of adaptive streams for HLS-6

4 years agoMoved ffmpeg call into a function ready for adding support for adaptive streams. See HLS-6
Ben Tasker []
Moved ffmpeg call into a function ready for adding support for adaptive streams. See HLS-6

4 years agoMerge branch 'FRHLS-8' of /home/ben/Documents/src.old/HLS-Stream-Creator
Ben Tasker []
Merge branch 'FRHLS-8' of /home/ben/Documents/src.old/HLS-Stream-Creator

4 years agoAdded basic support for linear video. See HLS-8
Ben Tasker []
Added basic support for linear video. See HLS-8

4 years agoAdded a notification that transcoding has started
Ben Tasker []
Added a notification that transcoding has started

4 years agoSimplifying legacy args handling
Ben Tasker []
Simplifying legacy args handling

4 years agoUpdated README for HLS-7
Ben Tasker []
Updated README for HLS-7

4 years agoImplemented getopt support, maintaining B/C for HLS-7
Ben Tasker []
Implemented getopt support, maintaining B/C for HLS-7

4 years agoAdded link to JIRA mirror to readme
Ben Tasker []
Added link to JIRA mirror to readme

4 years agoMerge pull request #6 from ironsmile/single-ffmpeg-call
Ben Tasker []
Merge pull request #6 from ironsmile/single-ffmpeg-call

FFMPEG will be called only once

4 years agoFFMPEG will be called only once
Doychin Atanasov []
FFMPEG will be called only once

Added more environment variables

4 years agoMade it easier to wrap the script with another BASH script
Ben Tasker []
Made it easier to wrap the script with another BASH script

4 years agoMerge pull request #5 from ndamiens/master
Ben Tasker []
Merge pull request #5 from ndamiens/master

Test executable defined in var $FFMPEG

4 years agotest executable defined in var $FFMPEG
Nicolas Damiens []
test executable defined in var $FFMPEG

4 years agoMerge pull request #4 from egyptianbman/master
Ben Tasker []
Merge pull request #4 from egyptianbman/master

Allowed inputfile to be a path.

4 years agoAllowed inputfile to be a path.
Beshoy Girgis []
Allowed inputfile to be a path.

4 years agoAdded output parameter to README
Ben Tasker []
Added output parameter to README

4 years agoMerge pull request #3 from scips/output-directory-parameter
Ben Tasker []
Merge pull request #3 from scips/output-directory-parameter

added support for a third parameter

4 years agoadded support for a third parameter: Output directory and the creation of the directory if it does not exists
Sébastien Barbieri []
added support for a third parameter: Output directory and the creation of the directory if it does not exists

5 years agoMerge pull request #2 from MiguelAngelLV/master
Ben Tasker []
Merge pull request #2 from MiguelAngelLV/master

changed let to expr. Merged into master, Thanks!

5 years agoChanged let by expr
Miguel Ángel []
Changed let by expr

Fixes #1

5 years agoFixing example by inserting breaks
bentasker []
Fixing example by inserting breaks

5 years agoFixing example by removing CRLF
bentasker []
Fixing example by removing CRLF

5 years agoEscaping hashes
bentasker []
Escaping hashes

5 years agoBasic functionality implemented
bentasker []
Basic functionality implemented

5 years agoUpdating readme
bentasker []
Updating readme

5 years agoUpdating README - fully expect to have to correct markdown....
bentasker []
Updating README - fully expect to have to correct markdown....

5 years agoPreliminary checks implemented
bentasker []
Preliminary checks implemented

5 years agoAdded basic file structure
bentasker []
Added basic file structure

5 years agoCreated gitignore
bentasker []
Created gitignore

5 years agoInitial commit
Ben Tasker []
Initial commit