PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : convert mpeg to 3gp (mencoder und ffmpeg) - kein sound!!!



alegria
19.02.09, 13:31
Moin!

Also nachdem ich bei google wild gesucht habe, fand ich das hier irgendwie schlüsselig und funktionsfähig:
http://slist.lilotux.net/linux/3gp/


mencoder film.mpeg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vf expand=176:144,scale=176:-2 -o film.avi -ofps 12
sowie

mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc film.mpeg

funktionieren einwandfrei und ich kann sowohl das video sehen als auch die extrahierte mucke hören...

Will ich aber final anwenden:

ffmpeg -i film.avi -i audiodump.wav -b 48 -ac 1 -ab 12 -map 0.0 -map 1.0 film.3gp
kommt ne Fehlermeldung wie etwa...

[libamr_nb @ 0xb7d527b0]bitrate not supported: use one of 4.75k, 5.15k, 5.9k, 6.7k, 7.4k, 7.95k, 10.2k or 12.2k
Error while opening codec for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height

Daraufhin hab ich mal den -ab Parameter auf 12.2k gesetzt und nun wird zwar 3gp file erstellt, aber ich höre nix! :(

(hatte irgendwo auch mal gelesen, dass der -b Parameter in kbyte angegeben werden... aber auch ein zusätzliches -b 48k brachte keinen finalen sound in der 3gp...)

:(

Irgendjemand nen Tipp???

undefined
19.02.09, 14:02
Du verwendest die falschen Bitangaben.
Siehe man ffmpeg dein Code sollte also eher so aussehen.


ffmpeg -i film.avi -i audiodump.wav -b 48k -ac 1 -ab 12k -map 0.0 -map 1.0 film.3gp

alegria
20.02.09, 11:59
Daraufhin hab ich mal den -ab Parameter auf 12.2k gesetzt und nun wird zwar 3gp file erstellt, aber ich höre nix!

(hatte irgendwo auch mal gelesen, dass der -b Parameter in kbyte angegeben werden... aber auch ein zusätzliches -b 48k brachte keinen finalen sound in der 3gp...)
Ich war doch schon so weit... ;)

Ein von Dir vorgeschlagenes

ffmpeg -i film.avi -i audiodump.wav -b 48k -ac 1 -ab 12k -map 0.0 -map 1.0 film.3gp
gibt nen Fehler aus weil 12k nicht erkannt wird. Ein ändern auf 12.2k, also

ffmpeg -i film.avi -i audiodump.wav -b 48k -ac 1 -ab 12.2k -map 0.0 -map 1.0 film.3gp
erstellt zwar ein 3GP File, aber ich höre da immer noch keinen Sound! :(

Als (Fehler)Ausgabe erhalte ich im übrigen:

Output #0, 3gp, to 'film.3gp':
Stream #0.0: Video: h263, yuv420p, 176x144 [PAR 1:1 DAR 11:9], q=2-31, 48 kb/s, 12.00 tb(c)
Stream #0.1: Audio: libamr_nb, 8000 Hz, mono, 4 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #1.0 -> #0.1
Press [q] to stop encoding
frame= 1685 fps=1680 q=16.4 size= 0kB time=140.42 bitrate= 0.0kbits/s frame= 2508 fps=1697 q=17.2 Lsize= 1465kB time=209.00 bitrate= 57.4kbits/s
video:1444kB audio:0kB global headers:0kB muxing overhead 1.456275%

Ne Idee warum da nix mit dem Sound passiert???

undefined
20.02.09, 12:06
Was sagt ...

ffplay -stats film.3gp

alegria
20.02.09, 12:33
bash: ffplay: command not found

ich spiele alle Multimedia-Files immer über den VLC ab...

undefined
20.02.09, 12:41
Na dann Installiere ffplay oder mplayer damit du auch Debuggen kannst.
Von der Kommandozeile kann ich keine Fehler sehen. Die Bitrate und das Mapping stimmen.

alegria
20.02.09, 13:00
mplayer hab ich...

da sieht die ausgabe dann so aus:


MPlayer 1.0rc2-SUSE Linux 10.3 (i686)-Packman-4.2.1 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Core(TM)2 Duo CPU T7100 @ 1.80GHz (Family: 6, Model: 15, Step
ping: 13)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Can't open joystick device /dev/input/js0: No such file or directory
Can't init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing film.3gp.
ISO: File Type Major Brand: 3GPP Profile 4
Quicktime/MOV file format detected.
[mov] Video stream found, -vid 0
VIDEO: [s263] 176x144 24bpp 12.000 fps 0.0 kbps ( 0.0 kbyte/s)
================================================== ========================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh263] vfm: ffmpeg (FFmpeg H.263+ decoder)
================================================== ========================
Audio: no sound
Starting playback...
VDec: vo config request - 176 x 144 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [xv] 176x144 => 192x144 Planar YV12

undefined
20.02.09, 14:01
Mal so nach gefragt. Ist die audiodump.wav auch nicht Leer?
Weil MPlayer sagt das kein Sound vorhanden ist.
Testen:
aplay -v audiodump.wav

alegria
20.02.09, 16:18
funktionieren einwandfrei und ich kann sowohl das video sehen als auch die extrahierte mucke hören...
Hatte ich doch schon erwähnt... ;)

Aber gut. Hier die gewünschte Ausgabe:

Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 16384
period_size : 1024
period_time : 21333
tick_time : 4000
tstamp_mode : NONE
period_step : 1
sleep_min : 0
avail_min : 1024
xfer_align : 1024
start_threshold : 1
stop_threshold : 1073741824
silence_threshold: 0
silence_size : 1073741824
boundary : 1073741824

undefined
20.02.09, 17:10
Seltsam dann sollte es vielleicht an der Sampelrate liegen aber ffmpeg gibt da im normal fall die entsprechende Fehlermeldung.


ffmpeg -i film.avi -r 25 -s cif -b 64k \
-i audiodump.wav -ac 1 -ar 8000 -ab 12.2k \
-map 0.0 -map 1.0 -y film.3gp

Ich habe eben bei mir mal ein Testfile gemacht und hier funst es einwandfrei.

EDIT: ich seh's gerade du hast den Video File ohne Audiospur erstellt.
Dann must du -newaudio Audio verwenden.

PS. Dein link mit der Doku ist veraltet.http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html#SEC11

alegria
20.02.09, 17:32
EDIT: ich seh's gerade du hast den Video File ohne Audiospur erstellt.
Dann must du -newaudio Audio verwenden.
Damit haben wir doch den Fehler, oder?
Nur weiss ich leider nicht wo ich da wie was mit newaudio machen soll...

Vermutlich muss der erste Befehl:

mencoder film.mpeg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vf expand=176:144,scale=176:-2 -o film.avi -ofps 1
abgeändert werden...

Nur wenn ich den Parameter -nosound mit -newaudio oder auch mit -newaudio Audio ersetze, bekomme ich immer ne Fehlermeldung (parsing error, -newaudio is not an Mencoder option)

Was muss ich anders machen bzw. kannst Du einfach mal Deine drei Zeilen posten die ein erfolgreiches 3gp erstellt haben? Dann mach ich einfach copy+paste und hier funzt es dann auch!?

undefined
20.02.09, 17:53
Du kannst dir den mencoder Befehl sparen. ffmpeg ersetzt automatisch die entsprechende Spur, dann fällt aber -newaudio wieder weg.


ffmpeg -i input.avi -r 25 -s cif -b 48k -i input.wav -ac 1 -ar 8000 -ab 12.2k -map 0.0 -map 1.0 -y film.3gp
...
Input #0, avi, from 'input.avi':
Duration: 00:00:38.52, start: 0.000000, bitrate: 30418 kb/s
Stream #0.0: Video: dvvideo, yuv420p, 720x576, 25.00 tb(r)
Stream #0.1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Input #1, wav, from 'input.wav':
Duration: 00:05:07.66, bitrate: 1536 kb/s
Stream #1.0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Output #0, 3gp, to 'film.3gp':
Stream #0.0: Video: h263, yuv420p, 352x288, q=2-31, 48 kb/s, 25.00 tb(c)
Stream #0.1: Audio: libamr_nb, 8000 Hz, mono, s16, 12 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #1.0 -> #0.1

alegria
20.02.09, 18:15
Nein kann ich mir eben nicht!

Ich muss ja erstmal aus meinem vorliegenden mpeg file ein avi machen und dabei auch noch die Größe anpassen etc.

Wie bist Du denn genau vorgegangen? Also was genau tippst du alles in die konsole damit am ende aus einem mpeg ein 3gp mit sound wird???

undefined
20.02.09, 19:06
Dann stimmt sehr wahrscheinlich etwas nicht mit deiner ffmepg Installation.
Ich habe gerade mal eine avi ohne Sound erstellt und dann codiert geht.


#!/bin/sh

ffmpeg -i example.avi -vcodec copy -an -y tmp.avi

ffmpeg -i tmp.avi -vcodec h263 -r 25 -s cif -b 64k \
-i soundfile.wav -acodec libamr_nb -ac 1 -ar 8000 -ab 12.2k \
-map 0.0 -map 1.0 -y film.3gp

Ausgabe:


Input #0, avi, from 'tmp.avi':
Duration: 00:01:34.60, start: 0.000000, bitrate: 28805 kb/s
Stream #0.0: Video: dvvideo, yuv420p, 720x576, 25.00 tb(r)
Input #1, wav, from 'soundfile.wav':
Duration: 00:05:07.66, bitrate: 1536 kb/s
Stream #1.0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Output #0, 3gp, to 'film.3gp':
Stream #0.0: Video: h263, yuv420p, 352x288, q=2-31, 64 kb/s, 25.00 tb(c)
Stream #0.1: Audio: libamr_nb, 8000 Hz, mono, s16, 12 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #1.0 -> #0.1
Press [q] to stop encoding
frame= 2365 fps= 29 q=24.8 Lsize= 2284kB time=94.60 bitrate= 197.8kbits/s
video:1723kB audio:481kB global headers:0kB muxing overhead 3.647263%

ffplay spielt den sauber ab:


ffplay -stats film.3gp
...
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'film.3gp':
Duration: 00:05:07.66, start: 0.000000, bitrate: 60 kb/s
Stream #0.0(und): Video: h263, yuv420p, 352x288 [PAR 12:11 DAR 4:3], 25.00 tb(r)
Stream #0.1(und): Audio: libamr_nb, 8000 Hz, mono, s16
7.22 A-V: -0.016 aq= 80KB vq= 862KB sq= 0B 0B

alegria
20.02.09, 19:39
Dann stimmt sehr wahrscheinlich etwas nicht mit deiner ffmepg Installation.

Hoffen wir das es das ist... Ich werds die Tage mal noch auf nem anderen Rechner probieren...

Dank Dir für Deine Hilfe!

alegria
23.02.09, 22:35
Also habs nu nochmal auf nem anderen rechner probiert und scheint wirklich an der ffmpeg zu liegen...

Seis drum - der finale, richtige und zum Erfolg führende "Dreisatz":

1.
mencoder film.mpg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vf expand=352:288,scale=352:-288 -o film.avi -ofps 12

2.
mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc film.mpg

3.
ffmpeg -i film.avi -i audiodump.wav -b 48k -ac 1 -ab 12.2k -map 0.0 -map 1.0 film.3gp

:)