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:
Brooke Vibber 2023-05-16 16:54:36 -07:00
parent f380334fe2
commit 97a21bd75f
2 changed files with 20 additions and 7 deletions

View file

@ -1,10 +1,17 @@
#!/bin/sh
OPTS=""
if [ "$1" == "--no-audio" ]
then
OPTS="--no-audio"
shift
fi
for INFILE in "$@"
do
echo "$INFILE"
COMMON="--exposure=-2.5 --peak=141 --fps=60000/1001"
COMMON="$OPTS --exposure=-2.5 --peak=141 --fps=60000/1001"
SPEED_SMALL="veryslow"
SPEED_LARGE="medium"

View file

@ -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;