audio tweaks etc
* pass --no-audio through from pack-set to pack-vid * don't reserve bitrate for audio if there's no audio track
This commit is contained in:
parent
f380334fe2
commit
97a21bd75f
2 changed files with 20 additions and 7 deletions
18
pack-vid
18
pack-vid
|
|
@ -121,16 +121,22 @@ function sizify( $str ) {
|
|||
die( "Unexpected size format '$str'\n" );
|
||||
}
|
||||
|
||||
function extractTracks( $streams, $type ) {
|
||||
return array_values(
|
||||
array_filter( $streams, function ( $stream ) use ( $type ) {
|
||||
return $stream->codec_type === $type;
|
||||
} )
|
||||
);
|
||||
}
|
||||
|
||||
function convert( $src, $dest, $options ) {
|
||||
$maxBits = 8 * sizify( $options['size'] );
|
||||
|
||||
$probe = ffprobe( $src );
|
||||
|
||||
$videoTracks = array_values(
|
||||
array_filter( $probe->streams, function ( $stream ) {
|
||||
return $stream->codec_type === 'video';
|
||||
} )
|
||||
);
|
||||
$videoTracks = extractTracks( $probe->streams, 'video' );
|
||||
$audioTracks = extractTracks( $probe->streams, 'audio' );
|
||||
|
||||
if ( count( $videoTracks ) == 0 ) {
|
||||
var_dump( $probe );
|
||||
die("oh no\n");
|
||||
|
|
@ -146,7 +152,7 @@ function convert( $src, $dest, $options ) {
|
|||
$bitrate = floor( $maxBits / $duration );
|
||||
|
||||
|
||||
if ( $options[ 'no-audio' ] ) {
|
||||
if ( $options[ 'no-audio' ] || count( $audioTracks ) == 0 ) {
|
||||
$audio = [ '-an' ];
|
||||
} else {
|
||||
$audioBitrate = 96 * 1000;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue