Skip to content

Commit

Permalink
Merge pull request #1 from BPing/dev
Browse files Browse the repository at this point in the history
audio sample rate
  • Loading branch information
BPing authored Oct 27, 2017
2 parents 7c00b7a + cf3a56c commit ea2fa80
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 21 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ use FFMpegPush\PushVideo;

```php
PushFormat::create()
->setVideoCodec("x264")
->setAudioCodec('copy')
->setVideoCodec(PushFormat::CODE_V_COPY)
->setAudioCodec(PushFormat::CODE_A_COPY)
->setAudioKiloBitrate(125)
->setVideoKiloBitrate(500)
->setAdditionalParamaters(
Expand Down
66 changes: 47 additions & 19 deletions src/FFMpegPush/PushFormat.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@ class PushFormat
const CODE_A_AAC = 'aac';
const CODE_A_COPY = 'copy';

// 音频常用采样率
const SAMPLE_RATE_44_1_KHZ = 44100;
const SAMPLE_RATE_48_KHZ = 48000;
const SAMPLE_RATE_22_05_KHZ = 22050;
const SAMPLE_RATE_11_025_KHZ = 11025;
const SAMPLE_RATE_FM = self::SAMPLE_RATE_22_05_KHZ; //FM广播的声音品质
const SAMPLE_RATE_CD = self::SAMPLE_RATE_44_1_KHZ; //CD音质
const SAMPLE_RATE_DVD = self::SAMPLE_RATE_48_KHZ; //DVD音质

/**
* 视频转码格式
Expand All @@ -40,7 +48,7 @@ class PushFormat
*
* @var Integer
*/
protected $videoKiloBitrate = null;
protected $videoKiloBitRate = null;


/**
Expand All @@ -55,7 +63,7 @@ class PushFormat
*
* @var integer
*/
protected $audioKiloBitrate = null;
protected $audioKiloBitRate = null;

/**
* 音频输出通道
Expand All @@ -64,12 +72,19 @@ class PushFormat
*/
protected $audioChannels = null;

/**
* 音频采样率
*
* @var integer
*/
protected $audioSampleRate = null;

/**
* 额外参数,作为补充
*
* @var Array
*/
protected $additionalParamaters = null;
protected $additionalParameters = null;

/**
* @param string $videoCodec
Expand All @@ -88,23 +103,22 @@ public function setVideoCodec($videoCodec = self::CODE_V_COPY)
}

/**
* @param int $videoKiloBitrate
* @param int $videoKiloBitRate
* @return $this
*/
public function setVideoKiloBitrate($videoKiloBitrate)
public function setVideoKiloBitrate($videoKiloBitRate)
{
$this->videoKiloBitrate = $videoKiloBitrate;
$this->videoKiloBitRate = $videoKiloBitRate;
return $this;
}


/**
* @param array $additionalParamaters
* @param array $additionalParameters
* @return $this
*/
public function setAdditionalParamaters(array $additionalParamaters)
public function setAdditionalParamaters(array $additionalParameters)
{
$this->additionalParamaters = $additionalParamaters;
$this->additionalParameters = $additionalParameters;
return $this;
}

Expand All @@ -125,12 +139,12 @@ public function setAudioCodec($audioCodec = self::CODE_A_COPY)
}

/**
* @param $audioKiloBitrate
* @param $audioKiloBitRate
* @return $this
*/
public function setAudioKiloBitrate($audioKiloBitrate)
public function setAudioKiloBitrate($audioKiloBitRate)
{
$this->audioKiloBitrate = $audioKiloBitrate;
$this->audioKiloBitRate = $audioKiloBitRate;
return $this;
}

Expand All @@ -145,6 +159,16 @@ public function setAudioChannels($audioChannels)
return $this;
}

/**
* @param $audioSampleRate
* @return $this
*/
public function setAudioSampleRate($audioSampleRate)
{
$this->audioSampleRate = $audioSampleRate;
return $this;
}

/**
* @return array
*/
Expand All @@ -154,21 +178,25 @@ function getFormats()
$formats = array_merge($formats, array('-vcodec', $this->videoCodec));
$formats = array_merge($formats, array('-acodec', $this->audioCodec));

if (null !== $this->videoKiloBitrate) {
$formats = array_merge($formats, array('-b:v', $this->videoKiloBitrate . 'k'));
if (null !== $this->videoKiloBitRate) {
$formats = array_merge($formats, array('-b:v', $this->videoKiloBitRate . 'k'));
}

if (null !== $this->audioKiloBitrate) {
$formats = array_merge($formats, array('-b:a', $this->audioKiloBitrate . 'k'));
if (null !== $this->audioKiloBitRate) {
$formats = array_merge($formats, array('-b:a', $this->audioKiloBitRate . 'k'));
}

if (null !== $this->audioKiloBitRate) {
$formats[] = '-ar';
$formats[] = $this->audioSampleRate;
}
if (null !== $this->audioChannels) {
$formats[] = '-ac';
$formats[] = $this->audioChannels;
}

if (null !== $this->additionalParamaters) {
foreach ($this->additionalParamaters as $additionalParameter) {
if (null !== $this->additionalParameters) {
foreach ($this->additionalParameters as $additionalParameter) {
$formats[] = $additionalParameter;
}
}
Expand Down

0 comments on commit ea2fa80

Please sign in to comment.