PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ffmpeg aber kein Ton



web4free
13.07.07, 17:14
Hallo Fangemeinde,

ffmpeg wird ja heir ziehmlich oft gefragt und ich versuche auch mein Glück, obwohl ich bei einigen ähnlichen Threads leider keine Antworten dazu fand.

Es geht um das leidige Thema ein vorhandenes Video in ein flv zu konvertieren.
Bis vor 2 Tagen hatte ich eine Linux SUSE 9.2 Ver. auf dem das Ganze bereits wunderbar funktionierte.
Eine Teufelsaktion hatte mich aber gestern dazu verdonnert die Kiste komplett neu aufzusetzen. Rootserver steht übrigens bei S4Y.
Und aus war es mit SUSE 9.2 und ich habe jetzt SUSE 10.1 drauf.

Soweit so gut hab ich alles wieder wie ich es auch schon einmal gemacht hatte installiert.
Videos werden auch gemacht. Was aber komplett fehlt ist der Ton.
Meine ./configure sieht so aus:

--enable-memalign-hack --enable-liba52 --enable-libmp3lame --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-libfaac --enable-gpl --enable-shared --enable-libamr-nb --enable-libamr-wb --enable-libx264 --enable-libxvid

Also libmp3lame ist ja drauf und auch die configure ist ohne Fehler durchgelaufen.

Der Aufruf erfolgt folgendermaßen:

ffmpeg -i test.wmv -r 25 -ab 32 -ar 11025 -acodec mp3 -s 320x240 -sameq -f flv 320x240 test.flv

Zurückgeschmissen wird mir dann:

FFmpeg version SVN-r9626, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --enable-memalign-hack --enable-liba52 --enable-libmp3lame --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-libfaac --enable-gpl --enable-shared --enable-libamr-nb --enable-libamr-wb --enable-libx264 --enable-libxvid
libavutil version: 49.4.1
libavcodec version: 51.40.4
libavformat version: 51.12.1
built on Jul 13 2007 17:57:12, gcc: 4.1.0 (SUSE Linux)

Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1)
Input #0, asf, from 'test.wmv':
Duration: 00:00:31.9, start: 3.000000, bitrate: 294 kb/s
Stream #0.0: Audio: wmav2, 44100 Hz, stereo, 48 kb/s
Stream #0.1: Video: wmv3, yuv420p, 320x240, 302 kb/s, 25.00 fps(r)
Output #0, flv, to '320x240':
Stream #0.0: Video: flv, yuv420p, 320x240, q=2-31, 200 kb/s, 25.00 fps(c)
Stream #0.1: Audio: 0x0000, 11025 Hz, stereo, 0 kb/s
Output #1, flv, to 'test.flv':
Stream #1.0: Video: flv, yuv420p, 320x240, q=2-31, 200 kb/s, 25.00 fps(c)
Stream mapping:
Stream #0.1 -> #0.0
Stream #0.0 -> #0.1
Stream #0.1 -> #1.0
Unsupported codec for output stream #0.1

wobei mich eben letzte Zeile sehr verwundert.

Ich weiß oft gefragtes Thema, aber bitte es muß doch eine Möglichkeit geben.
Ich weiß, dass sich bei den Versionen selbst etwas verändert hat, aber soll es überhaupt keine Möglichkeit geben??

Rain_maker
13.07.07, 17:21
Und die Verwendung fertiger (rpm)-Pakete kommt wohl nicht in Frage?

//Edit:



Unsupported codec for output stream #0.1

Ist eigentlich deutlich:

Bist Du sicher, daß das Codec auch wirklich "mp3" heissen muss?

Greetz,

RM

web4free
13.07.07, 17:33
Servus,

doch, doch!:cool:

Hab jetzt über YAST mal nach einer Anleitung so ziehmlich alles nochmals draufgespielt.

Hab auch über Packman und webmin versucht Pakete zu installieren.
Hier hab ich besonderst auf die Abhängigkeiten aufgepasst und auch diese eingespielt.

Also entweder hätte ich hier noch was vergessen, oder ich weiß nicht....:ugly:
Oder gibt es komplett fertige rpm's wo das ganze nur eingespielt werden muß und die Sache hat sich damit **blödfrag**

lg.
Werner

Rain_maker
13.07.07, 17:37
Schau doch mal in die manpage zu ffmpeg, ob bei der Verwendung von lame als mp3-Kodierer die Syntax zu "-acodec" wirklich "mp3" lautet.

Laut Fehlermeldung würde ich vermuten, daß dem nicht so ist.

Greetz,

RM

web4free
13.07.07, 18:27
Also was ich gefunden und probiert hätte, wäre ein
-acodec libmp3lame gewesen.
Leider mit dem selben Effekt.

Gäbe es für SUSE 10.1 Linux eventuell noch andere Konvertierungssoftware?
Ich werd mal etwas googlen....

web4free
13.07.07, 20:25
Ich steh echt vor einen mega Problem.
Ich komm einfach nicht weiter.

Jetzt hab ichs noch mit dem mencoder probiert - der spukt mir auch dauernd eine Fehlermeldung zurück von wegen einer "libavformat muxing" Sache.

Problem ist, dass mir der Chef langsam den Ofen heiß macht ud ich nimmer weiß an was es liegen könnte.

Ich hoffe es gibt noch jemanden der mir weiterhelfen kann.
Videos ohne Ton sind nicht lustig und leider auch nicht brauchbar.

Teetrinker
14.07.07, 08:20
Versuche es mal mit "-ab 32k" anstelle von "-ab 32".

web4free
14.07.07, 14:43
Versuche es mal mit "-ab 32k" anstelle von "-ab 32".

Bringt das selbe Ergebnis. Ist aber scheinbar nicht notwendig, da ich es auf der vorherigen Installation auch so gehabt hatte - nur funktionierend halt.

Ne ich denke es liegt am "-acodec mp3" weil er mir da ja auch hinschreibt
Unsupported codec for output stream #0.1

Nur ich werde nicht fündig....

Teetrinker
14.07.07, 20:50
Versuche mal -acodec libmp3lame und -ab 32k.

Klappt hier mit den Paketen von PackMan ohne Probleme.
Die Einheitengröße für die Audiobitrate hat sich bei neueren FFmpeg Versionen verändert. Eine Audio Bitrate von 32Bit pro Sekunde dürfte lame vermutlich nicht schaffen.

Rain_maker
14.07.07, 21:00
Klappt hier mit den Paketen von PackMan ohne Probleme.

Das bringt noch eine weitere Vermutung auf den Plan (sofern der obige Tipp nicht funktioniert).

Reste von der zuvor gemachten händischen ffmpeg-Installation auf dem System?



--enable-memalign-hack --enable-liba52 --enable-libmp3lame --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-libfaac --enable-gpl --enable-shared --enable-libamr-nb --enable-libamr-wb --enable-libx264 --enable-libxvid
Da sehe ich nämlich keinen "--prefix" und somit landen die Dateien in /usr/local/ und nicht wie beim Packman-Paket in /usr/ und solche "Dubletten" können dann die schönsten Effekte verursachen.

Greetz,

RM

web4free
14.07.07, 21:47
Versuche mal -acodec libmp3lame und -ab 32k.

Klappt hier mit den Paketen von PackMan ohne Probleme.
Die Einheitengröße für die Audiobitrate hat sich bei neueren FFmpeg Versionen verändert. Eine Audio Bitrate von 32Bit pro Sekunde dürfte lame vermutlich nicht schaffen.

Hat leider auch nix gebracht!

Gut beginnen wir mal ganz von vorne und langsam zum Mitschreiben.
Ich habe ja verschiedene Möglichkeiten probiert ffmpeg zum Laufen zu bringen.

Was hab ich gemacht?
Zuerst hätte ich auf der Konsole Lame combiliert und dann mittels
svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ./ffmpeg
./configure **wie ich bereits oben geschrieben hatte**
make
make installgemacht.

Dann hätte ich von PackMan (http://packman.links2linux.org/package/ffmpeg/28535)
über Webmin / System / Softwarepakete das Paket 0.4.9 für SUSE 10.1 i586 gezogen.
Da es hier einige Abhängigkeiten gab hab ich die alle lt. der Liste bei PackMan ebenfalls installiert.

Da dies auch nicht gefruchtet hat, habe ich ffmpeg sowie lame über YAST entfernt und wieder hinzugefügt was auch nichts gebracht hatte.

Ich denke hier steckt dann auch der Wurm drinnen und somit möchte ich alles nochmals von Null beginnen.
Denn obwohl ich über YAST ffmpeg entfernt hatte hat es immer noch funktioniert (ohne Ton)

Da ich ja noch nicht so extrem sattelfest bin, möchte ich jetzt gerne ffmpeg restlos entfernen und lame auch.
Sagt mir bitte wie ich das sauber wegbekomme.

Wie soll ich dann ffmpeg sauber installieren?
Nur über die Pakete von PackMan inkl. Abhängigkeiten und das wars, oder muß ich dann noch irgendwie mein ./configure machen?

Ich will eigendlich nur von einen beliebigen Filmformat ins FLV-Format konvertieren - mit Ton :rolleyes:

Ich bedanke mich jetzt schon mal für eure Hilfe.

web4free
15.07.07, 12:57
Neue Erkenntnis!
Ausgangsvideo ist ein ganz normales WMV File.

Wandle ich mein Video in ein AVI oder MP3 um hab ich zwar einen Ton aber kein Video.

Irgendwer eine Ahnung was da falsch laufen könnte??
lg.
Werner

web4free
15.07.07, 14:11
So nun bin ich völlig von der Rolle :D
Das Klumpert funktioniert wieder.

Was hab ich gemacht?
Nochmals über Webmin => Softwarepakete alles runtergelöscht.
Zusätzlich über YAST auch nochmals eliminiert, obwohl es dort ja gar nimmer hätte eingetragen sein sollen.
Aber gut YAST hat eh gemeckert, dass es nicht möglich ist und hat halt den - ich glaub Status - auf nicht installiert gesetzt.
Dann hab ich auch nochmals aus dem tmp Ordner ffmpeg rausgeschmissen.

So dann hab ich nochmals alles von neuen begonnen und alles von PackMan inkl. der Abhängigkeiten neu über Webmin => Softwarepakete draufgespielt.
Einziger Unterschied - ich habe dieses mal nicht die Pakete für die SUSE 10.1 genommen welche ich ja habe sondern die Pakete der SUSE 9.1 welche ich vorhin hatte.

Zu guter letzt hätte ich halt dann noch
svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ./ffmpeg
./configure --enable-memalign-hack --enable-liba52 --enable-libmp3lame --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-libfaac --enable-gpl --enable-shared --enable-libamr-nb --enable-libamr-wb --enable-libx264 --enable-libxvid
make
make install gemacht.
Einzig bei der libx264 hat er gemeckert dass er die nicht findet, obwohl ich die installiert hatte.

Keine Ahnung ob es richtig ist 9.1er Pakete auf einer 10.1er Version aufzuspielen. Aber es funktioniert wieder.
Ich hätte jetzt auch keinen blassen Dunst warum das so ist.

Aber sollte ich mir jetzt noch den Kopf darüber zermürben?:confused:

littleDumbledor
23.07.07, 16:54
Sorry wenn ich mich in eure Diskussion so einfach einmische :-)

Aber hat überhaupt schon jemand ffmpeg zum laufen gebracht ?

Ich versuche nunmehr seit 2 Monaten das teil zum laufen zu bringen, bisher vergeblich.

Ich habe sämtliche schritte gemacht die mann machen muss und trotzdem geht es nicht :-(

Volgende Konfiguration ist vorhanden

openSuse 10.1
PHP 5.1.2
Apache/2.2.0 (Linux/SUSE)

was ffmpeg anbelangt sind folgende Pakete installiert

FFMPEG SVN-r9767
configuration: --enabled-shared --enabled-liba52 --enabled-gpl --enabled-lipmp3lame --enabled-libogg --enabled-libvorbis --enabled-libtheora
libavutil ver : 49.4.1
libavcodec ver : 51.40.4
libavformat ver : 51.12.1

ffmpeg-php ver : 0.5.1
ruby ver : 1.8.4
MPlayer-Paket ver : die neueste Version von http://www.mplayerhq.hu
( fragt mich bitte nicht nach der versionsnummer )
flvtool2 ver : 1.06

ebeso habe ich alle ( wohlgemerkt alle ) pakete installiert die mir eines der vorgenanten pakete als abhängigkeiten gemeldet hat.

so das ist dir seite der Programme/Pakete

wenn ich nun versuche ein hochgeladenes Video mit dem folgenden script umzuwandeln erhalte ich immer die meldung das ffmpeg das codec nicht finden kann

<?php

define('FFMPEG_BINARY', '/usr/local/bin/ffmpeg');
define('FFMPEG_FLVTOOLS_BINARY', '/usr/bin/flvtool2');
require_once '../inc/ffmpeg.php';
$thumbnail_output_dir = '../UserFiles/Image/';
$video_output_dir = '../UserFiles/Video/';

SESSION_START();
$userid_eig = $_SESSION['userid_eig'];
include("../inc/config.php");

$datum = time();

$config[max_video_size] = '4.5';
$config[vdodir] = '../tmp';
$config[flvdodir] = '../Userfiles/Video';

if($_FILES['file1']['tmp_name']!="") {
$p=$_FILES['file1']['name'];
$pos=strrpos($p,".");
$ph=strtolower(substr($p,$pos+1,strlen($p)-$pos));

$space = round($_FILES['file1']['size']/(1024*1024));

if($ph!="mpg" && $ph!="avi" && $ph!="mpeg" && $ph!="wmv" && $ph!="rm" && $ph!="dat" && $ph!="flv") {
header("loacation: index.a.php?menue=$menue&op0=fehler.fehler.vidtype");
exit();
}
if($space > $config[max_video_size]) {
header("loacation: index.a.php?menue=$menue&op0=fehler.fehler.vidsize");
exit();
}

$vdoname = $userid_eig.'.'.$datum.'.'.$ph;
$vdo = $userid_eig.'.'.$datum;
}

if($err=="") {
if(isset($_FILES['file1']['tmp_name']) && is_uploaded_file($_FILES['file1']['tmp_name'])) {
$ff = $config[vdodir]."/".$vdoname;
if(move_uploaded_file($_FILES['file1']['tmp_name'], $ff)) {

$file = $ff;

$ffmpeg = new ffmpeg();
$ffmpeg->on_error_die = FALSE;
$filename = basename($file);
$filename_minus_ext = substr($filename, 0, strrpos($filename, '.'));

$ok = $ffmpeg->setInputFile($input_dir.$file);
if(!$ok) {
echo '<b>'.$ffmpeg->getLastError()."</b><br />\r\n";
$ffmpeg->reset();
continue;
}

$ffmpeg->extractFrame('00:00:02');

$ok = $ffmpeg->setOutput($thumbnail_output_dir, $filename_minus_ext.'.0.jpg', TRUE);
if(!$ok) {
echo '<b>'.$ffmpeg->getLastError()."</b><br />\r\n";
$ffmpeg->reset();
continue;
}

$result = $ffmpeg->execute(TRUE);
if(!$result) {
echo '<b>'.$ffmpeg->getLastError()."</b><br />\r\n";
$ffmpeg->reset();
continue;
}

$ok = $ffmpeg->setInputFile($input_dir.$file);
if(!$ok) {
echo $ffmpeg->getLastError()."<br />\r\n";
$ffmpeg->reset();
continue;
}
$ffmpeg->setVideoOutputDimensions(320, 240);
$ffmpeg->setFormatToFLV($samprate, $bitrate);
$ok = $ffmpeg->setOutput($video_output_dir, $filename_minus_ext.'.flv', TRUE);
if(!$ok) {
echo $ffmpeg->getLastError()."<br />\r\n";
$ffmpeg->reset();
continue;
}
$result = $ffmpeg->execute(TRUE);
if(!$result) {
echo $ffmpeg->getLastError()."<br />\r\n";
$ffmpeg->reset();
continue;
}

$ffmpeg->reset();

}
}
}
?>

Das erstellen des .jpg funktioniert einwandfrei, aber das video wird nicht codiert.

welche zusätzlichen codecs muss/kann ich noch installieren

bitte helft mir ich bin mit meinem latein und mit meinen nerven am ende