YouTubeからいくつかのビデオをダウンロードし、3gpに変換して携帯電話で再生できるようにします。 ffmpegを使用してこれを行う方法を知りたいです。
ネット上でさまざまな結果を試しましたが、次のエラーが発生しました。
私が使用した:
ffmpeg -i dil.mp4 -sameq -ab 64k -ar 44100 dilenada.3gp
私が得た:
Unsupported codec for output stream #0.1
ストリーム0コーデックフレームレートがコンテナフレームレートと異なるようです:2000.00(2000/1)-> 29.92(359/12)
私が使用した:
ffmpeg -y -i dil.mp4 -r 20 -s 352x288 -b 400k -acodec libfaac -ac 1 -ar 2000 -ab 24k dilenada.3gp
私が得た:
Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 29.92 (359/12)
Unknown encoder 'libfaac'
何が間違っていますか?
次のコマンドを使用します。
ffmpeg -y -i movie.mp4 \
-r 20 -s 352x288 -vb 400k \
-acodec aac -strict experimental -ac 1 -ar 8000 -ab 24k \
movie.3gp
おそらくlibavcodec-extra-53 libavformat-extra-53 libavutil-extra-51
などのようなffmpegの非フリー/制限付きパッケージをインストールする必要があるだけです。
--list-encoders
を指定してffmpegを呼び出すと、使用可能なエンコーダーが表示されます。
あなたはすべて正しいことをしています:)。変換を機能させるには、インストールする必要があります。
Ubuntu Restricted Extras、つまりlibavcodec-extra-53
ソフトウェアセンターから入手するか、次のコマンドを使用します。
Sudo apt-get install ffmpeg libavcodec-unstripped-52
私もffmpegで問題に遭遇しました
どうやら、ubuntuはffmpegではなく、avconvと呼ばれるフォークを使用しています。これにより、サイトで見つかったいくつかの(多くの?)コマンドがUbuntuで使用できなくなります。
私がやったのは、元のffmpegを取得することでした:
Sudo add-apt-repository ppa:jon-severinsson/ffmpeg
Sudo apt-get update
Sudo apt-get install ffmpeg
しかし、これがあなたにどれだけ役立つかわからない
この問題を回避するための唯一のオプションは、build from source
です。これで問題は解決しました。使用しようとしたシステムに現在あるffmpeg
パッケージのいずれかをアンインストールし、 この優れたUbuntuコンパイルガイドを使用 。これが、mp4やmp3などの独自形式にエンコードできる唯一の方法でした。
さらに、次のスクリプト(元の作成者の功績)を再度変更し、mp4 to 3gp
またはmp4 to mp3
(オーディオを抽出するため)などを変換するために再度変更することができます。また、新しく変換されたファイルにファイルの元の名前が保持されます。ただし、オプションを正しく入力することが重要です。
3gpにはさまざまなオプションを使用できます。たとえば、qcif
(176x144)とは異なる解像度が必要な場合がありますが、compiled
バージョンのffmpeg
でこれらの設定が最初に機能することがわかりました。 (CPUの性能によっては、変換に時間がかかる場合があります。3gpに変換するとファイルサイズが大幅に削減されるため、変換の1つで314mbから13mbになります!)
以下のスクリプトを新しいドキュメントに保存し、実行可能(chmod +x
)にし、目的のフォルダーに配置して実行します。または、ターミナルを使用して、スクリプトが入っているフォルダーと、ファイルを含むターゲットフォルダーを選択します。例えば~/Scripts/script ~/Downloads
#!/bin/bash
for f in *.mp4
do
name="${f/.mp4/.3gp}"
ffmpeg -i "$f" -vcodec h263 -s qcif -r 15 -b 100k -acodec libfaac -ac 1 -ar 32000 -ab 64k -f 3gp "$name"
done