2011-01-25 23 views
4

私のサイトへのアップロードで2パスのエンコードを行っています。ユーザーは6つのオーディオチャンネルmkvのファイル(5.1サラウンド)をアップロードするときffmpegで6つのオーディオチャンネルを2に変換する

は残念ながら、ffmpegのは、次のエラーを吐く:

Resampling with input channels greater than 2 unsupported. 

イムは、ffmpegのの最新バージョンを実行しています。通常の- ac 2の代わりに-ac 6を実行すると、エンコードが行われますが、無駄なデータを含む大きなファイルを作成するだけでなく、すでに長いファイル処理スクリプトに別のステップを作成しています。

実際に-ac 2を動作させるためにできることはありますか?

+1

プログラミングに関連していない - http://superuser.comに属しています –

+0

@Paulこれは、ffmpegのソースコードを修正することを含め、いかなる手段によってもこの問題を解決しようとしているようです。このレベルでは、スーパーユーザはあまり役に立ちません。 – 9dan

+1

ffmpegの最新バージョンは – Kuncevic

答えて

1

現在のffmpegの既知のバグ/制限です。

私の経験では、ffmpegだけではできないと結論づけました。

オーディオとビデオを別々にトランスコードする必要があります。

1)ソースムービーから.wavファイルを抽出します。
2)Audacityなどのオーディオ編集ツールを使用して2chステレオにリサンプルします。
3)は
3)トランスビデオストリームが
4)マルチプレクサオーディオ/ビデオミー私はそれがfirstitで を向上させることができたスクリプトは、タグとmp3に変換しようとしているフォーマット

+0

ですが、このパッチは見つかりましたが、ffmpegの古いバージョン用です。http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080111/691922d1/attachment.obj Ifそれは現在のバージョンのために変更することができます... –

0

を標的とするオーディオストリームをエンコード彼らは私が最近追加「amerge」モジュールがありました

#!/bin/bash 
FLAC="${1}" 
MP3="${FLAC%.flac}.mp3" 
[ -r "${FLAC}" ] || { echo can not read file \"${FLAC}\" >&1 ; exit 1 ; } ; 
# Save meta information 
metaflac --export-tags-to=- "${FLAC}" | sed 's/=\(.*\)/="\1"/' >tmp.tmp 
cat tmp.tmp 
. ./tmp.tmp 
rm tmp.tmp 

# try to save meta info and convert to mp3 format 
flac -dcs "${FLAC}" | lame -b 192 -h --tt "${Title}" \ 
    --tn "${Tracknumber}" \ 
    --tg "${Genre}"  \ 
    --ty "${Date}"  \ 
    --ta "${Artist}"  \ 
    --tl "${Album}"  \ 
    --add-id3v2   \ 
    - "${MP3}" 
# if fail do not use saved meta info 
if [ $? -eq 1 ]; then 
    ffmpeg -i "${FLAC}" -vcodec copy -acodec libmp3lame -ab 192k -ar 48000 -async 48000 -ac 2 "${MP3}" 
fi 
0

mp3ステレオに変換するのffmpegを使うより2つのチャネルである場合、それらは最大で2シャネルズ している場合、これは動作します。

0

ffmpegをRPMからインストールしたときに同じ問題が発生しましたが、その後、レイトバージョンをhereから取り出して、魅力的に機能しました。

一部のフラグは変更されています。たとえば、-sameqは、新しいバージョンを使用する場合は-qscale 0にする必要があります。運用環境で使用する前に十分にテストする必要があります。

関連する問題