flv to mpeg4

Fórumok

Sziasztok.

mencoder segítségével próbáltam motion-nel rögzített flv állományokból mpeg4-es avit varázsolni oly módon, hogy 2-szeres lassulás következzen be (8 fps helyett 4 fps legyen), és hozzáíródjon egy mp3 hangállomány...

Szerintem az flv körül valami hibádzik. Nem tudom mi.

A kimenet ez (egyszerűsítve a dolgot):

root[shm]# mencoder -ovc lavc -lavcopts vcodec=mpeg4 ./01-20130326100812.flv -o 01-20130326100812.avi
MEncoder 20101218-4.5.1 (C) 2000-2010 MPlayer Team
success: format: 0 data: 0x0 - 0x1a5eb0
libavformat file format detected.
[flv @ 0x91cfab0] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (flv), -vid 0
VIDEO: [FLV1] 640x480 0bpp 0.083 fps 400.0 kbps (48.8 kbyte/s)
[V] filefmt:44 fourcc:0x31564C46 size:640x480 fps:0.083 ftime:=12.0000
Cannot find codec 'mpeg4' in libavcodec...
Couldn't open video filter 'lavc'.
Failed to open the encoder.

Exiting...
root[shm]#

Szerintetek ez mi?
Elvileg meg kellene történnie a konverziónak...
A libavcodec-kel szerintem semmi gond, de mégis volna?

Hozzászólások

mencoder-nél tapasztaltam bizonyos flv vagy mpeg4 fájloknál én is, hogy nem tudja enkódolni/dekódolni. mpeg4-nél még lehet próbálgatni msmpeg4 vagy msmpeg4v2 formátumot, hátha.
Az flv-t az ffmpeg jobban kezeli, a videoszűrőit viszont még nem próbáltam. Egy próbát megér, ha mást nem is tud, egy köztes állományt létrehozhatsz vele, amit a mencoder is tud.
flv-be konvertáláskor szoktam még használni egy flvtool nevű cuccot is, flv-ből flv-t csinál, csak valamit indexel/kulcsol (weblapon a jwplayer csak ezután hajlandó ide-oda léptetgetni a videoban). Kipróbálnám ezt is, hátha valami indexelést hiányol a mencoder.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

root[_usb]# cp /mnt/_usb/webcam2/*.flv /dev/shm

root[shm]# mencoder -ovc lavc -lavcopts vcodec=msmpeg4 ./01-20130326100812.flv -o 01-20130326100812.avi
MEncoder 20101218-4.5.1 (C) 2000-2010 MPlayer Team
success: format: 0 data: 0x0 - 0x1a5eb0
libavformat file format detected.
[flv @ 0x9cbfab0] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (flv), -vid 0
VIDEO: [FLV1] 640x480 0bpp 0.083 fps 400.0 kbps (48.8 kbyte/s)
[V] filefmt:44 fourcc:0x31564C46 size:640x480 fps:0.083 ftime:=12.0000
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffflv] vfm: ffmpeg (FFmpeg Flash video)
==========================================================================
Movie-Aspect is undefined - no prescaling applied.
videocodec: libavcodec (640x480 fourcc=33766964 [div3])
[msmpeg4 @ 0x88e4c80]bitrate tolerance too small for bitrate
Could not open codec.
FATAL: Cannot initialize video driver.
Movie-Aspect is undefined - no prescaling applied.
videocodec: libavcodec (640x480 fourcc=33766964 [div3])
[msmpeg4 @ 0x88e4c80]bitrate tolerance too small for bitrate
Could not open codec.
FATAL: Cannot initialize video driver.

Exiting...
root[shm]# mencoder -ovc lavc -lavcopts vcodec=msmpeg4v2 ./01-20130326100812.flv -o 01-20130326100812.avi
MEncoder 20101218-4.5.1 (C) 2000-2010 MPlayer Team
success: format: 0 data: 0x0 - 0x1a5eb0
libavformat file format detected.
[flv @ 0xaeb9ab0] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (flv), -vid 0
VIDEO: [FLV1] 640x480 0bpp 0.083 fps 400.0 kbps (48.8 kbyte/s)
[V] filefmt:44 fourcc:0x31564C46 size:640x480 fps:0.083 ftime:=12.0000
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffflv] vfm: ffmpeg (FFmpeg Flash video)
==========================================================================
Movie-Aspect is undefined - no prescaling applied.
videocodec: libavcodec (640x480 fourcc=3234504d [MP42])
[msmpeg4v2 @ 0x88e4c80]bitrate tolerance too small for bitrate
Could not open codec.
FATAL: Cannot initialize video driver.
Movie-Aspect is undefined - no prescaling applied.
videocodec: libavcodec (640x480 fourcc=3234504d [MP42])
[msmpeg4v2 @ 0x88e4c80]bitrate tolerance too small for bitrate
Could not open codec.
FATAL: Cannot initialize video driver.

Exiting...
root[shm]#

este tovább nézem...

Az mplayer lejátsza ezeket a fájlokat?

"Movie-Aspect is undefined - no prescaling applied."
még egy ilyet toldj be a paraméterlista elejére:

-vf scale=352:288

Bizonyos encoderek csak adatt x:y méretben hajlandóak dolgozni.

az flv-vel mencoder előtt próbálj meg egy ilyet, hátha:

flvtool2 -U video.flv

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

root[shm]# mencoder -vf scale=640:480 -ovc lavc -lavcopts vcodec=msmpeg4 ./01-20130326100812.flv -o 01-20130326100812.avi
MEncoder 20101218-4.5.1 (C) 2000-2010 MPlayer Team
success: format: 0 data: 0x0 - 0x1a5eb0
libavformat file format detected.
[flv @ 0x93dccd0] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (flv), -vid 0
VIDEO: [FLV1] 640x480 0bpp 0.083 fps 400.0 kbps (48.8 kbyte/s)
[V] filefmt:44 fourcc:0x31564C46 size:640x480 fps:0.083 ftime:=12.0000
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [scale w=640 h=480]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffflv] vfm: ffmpeg (FFmpeg Flash video)
==========================================================================
Movie-Aspect is undefined - no prescaling applied.
[swscaler @ 0x898d960]using unscaled yuv420p -> yuv420p special converter
videocodec: libavcodec (640x480 fourcc=33766964 [div3])
[msmpeg4 @ 0x88e4c80]bitrate tolerance too small for bitrate
Could not open codec.
FATAL: Cannot initialize video driver.
Movie-Aspect is undefined - no prescaling applied.
videocodec: libavcodec (640x480 fourcc=33766964 [div3])
[msmpeg4 @ 0x88e4c80]bitrate tolerance too small for bitrate
Could not open codec.
FATAL: Cannot initialize video driver.

Exiting...
root[shm]#

próbálom a többit...

Esetleg próbáld meg a kino-ba importálni, majd a kívánt műveletek után exportálni. Tetű lassú, de nálam bevált workaround. Szerencsére ritkán van rá szükség.

Szia!

Több sebből vérzik ez a dolog.

Az MPEG-4 az egy szabványcsoport, nem egy videocodec. Az MPEG-4 szabványcsoportban definiált videocodec az AVC, más néven H.264. Az encoder nyílt forrású implementációja az x264, a libavcodec is ezt használja.

Az MP4 meg egy konténerformátum, amiben többféle audio/vidoesáv is lehet, többféle kodektípussal.

A hibaüzenetben benne is van, hogy olyan kimeneti encodert nevezel meg, amit a libavcodec nem ismer, ez a baj.
Legyen a codec neve h264. Azt ismeri a libavcodec, már ha bele lett fordítva.

igen, tényleg több sebből vérzek, ilyesmit rég csináltam már.

Megpróbáltam:

root[shm]# mencoder -ovc lavc -lavcopts vcodec=h264 ./01-20130326100812.flv -o 01-20130326100812.avi
MEncoder 20101218-4.5.1 (C) 2000-2010 MPlayer Team
success: format: 0 data: 0x0 - 0x1a5eb0
libavformat file format detected.
[flv @ 0x9802aa0] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (flv), -vid 0
VIDEO: [FLV1] 640x480 0bpp 0.083 fps 400.0 kbps (48.8 kbyte/s)
[V] filefmt:44 fourcc:0x31564C46 size:640x480 fps:0.083 ftime:=12.0000
Cannot find codec 'h264' in libavcodec...
Couldn't open video filter 'lavc'.
Failed to open the encoder.

Exiting...
root[shm]#

Tipp: nem lett beleforgatva a libavcodecbe az mpeg4 encoder.
Ha csomagból raktad fel, próbáld meg kézzel fordítani a legfrissebb svn snapshotból. (svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer)
Mondjuk az ffmpeg beépített mpeg4 encodere nem a legjobb, ha ragaszkodsz az mpeg4-hez, javaslom az xvidet, "mencoder -ovc help"-el meg tudod nézni támogatja-e.

Az ugyanúgy libavcodec-et használ (hiszen ők csinálják :D). A libavcodec számára viszont az mpeg4 nem ismert kódernév, a h264 viszont igen.
Olyan, hogy MPEG4 kodek, olyan nem létezik. Az MPEG-4 az egy szabványcsoport, MPEG-4 audio kodek az AAC, video kodek az AVC (ismertebb nevén H.264).

Igen,ezektől én is hüjét kapok, a h264 volt régen nálam alap ogg-gal, és annyi a multimédia.
nincs ubuntum, széthekkelt slackware-em van.
apt-get és slapt-get sincs használat alatt, legtöbbszörmindent kézzel rakok fel.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Látom én hogy mi van ide írva, csak nem biztos, hogy értem:

ffmpeg -formats | grep 264
ffmpeg version 0.8.5-4:0.8.5-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
built on Jan 24 2013 18:03:14 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
DE h264 raw H.264 video format
E ipod iPod H.264 MP4 format

Egyiknél sem megy amit írtál.

root[shm]# ffmpeg -i ./01-20130326100812.flv ./01-20130326100812.avi
FFmpeg version 0.6.6, Copyright (c) 2000-2010 the FFmpeg developers
built on Jul 3 2012 19:25:57 with gcc 4.5.2
configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/man --enable-shared --disable-static --enable-pthreads --enable-x11grab --disable-libfaac --enable-libmp3lame --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --disable-libdirac --enable-libschroedinger --enable-gpl --enable-postproc --enable-libfaad --enable-libfaadbin --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-version3 --disable-ssse3 --arch=i486 --cpu=i686
WARNING: library configuration mismatch
libavformat configuration: --extra-version=4:0.6.2-1ubuntu2+medibuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-vaapi --enable-libopenjpeg --enable-libfaac --enable-nonfree --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdirac --enable-libfaad --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libdc1394 --enable-shared --disable-static
libpostproc configuration: --extra-version=4:0.6.2-1ubuntu2+medibuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-vaapi --enable-libopenjpeg --enable-libfaac --enable-nonfree --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdirac --enable-libfaad --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libdc1394 --enable-shared --disable-static
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x9dc0440]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 0.08 (1/12)
Input #0, flv, from './01-20130326100812.flv':
Metadata:
duration : 1
width : 640
height : 480
videodatarate : 391
framerate : 2
videocodecid : 2
filesize : 1728176
Duration: 00:00:00.56, start: 0.000000, bitrate: 400 kb/s
Stream #0.0: Video: flv, yuv420p, 640x480, 400 kb/s, 0.08 tbr, 1k tbn, 1k tbc
Output #0, avi, to './01-20130326100812.avi':
Metadata:
ISFT : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 640x480, q=2-31, 200 kb/s, 0.08 tbn, 0.08 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 1 fps= 0 q=5.1 Lsize= 47kB time=12.00 bitrate= 32.3kbits/s dup=0 drop=60
video:42kB audio:0kB global headers:0kB muxing overhead 13.352838%
root[shm]# ffmpeg -i ./01-20130326100812.flv ./01-20130326100812.mp4
FFmpeg version 0.6.6, Copyright (c) 2000-2010 the FFmpeg developers
built on Jul 3 2012 19:25:57 with gcc 4.5.2
configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/man --enable-shared --disable-static --enable-pthreads --enable-x11grab --disable-libfaac --enable-libmp3lame --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --disable-libdirac --enable-libschroedinger --enable-gpl --enable-postproc --enable-libfaad --enable-libfaadbin --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-version3 --disable-ssse3 --arch=i486 --cpu=i686
WARNING: library configuration mismatch
libavformat configuration: --extra-version=4:0.6.2-1ubuntu2+medibuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-vaapi --enable-libopenjpeg --enable-libfaac --enable-nonfree --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdirac --enable-libfaad --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libdc1394 --enable-shared --disable-static
libpostproc configuration: --extra-version=4:0.6.2-1ubuntu2+medibuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libdirac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-vaapi --enable-libopenjpeg --enable-libfaac --enable-nonfree --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdirac --enable-libfaad --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libdc1394 --enable-shared --disable-static
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x8289440]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 0.08 (1/12)
Input #0, flv, from './01-20130326100812.flv':
Metadata:
duration : 1
width : 640
height : 480
videodatarate : 391
framerate : 2
videocodecid : 2
filesize : 1728176
Duration: 00:00:00.56, start: 0.000000, bitrate: 400 kb/s
Stream #0.0: Video: flv, yuv420p, 640x480, 400 kb/s, 0.08 tbr, 1k tbn, 1k tbc
Output #0, mp4, to './01-20130326100812.mp4':
Metadata:
encoder : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 640x480, q=2-31, 200 kb/s, 1 tbn, 0.08 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 1 fps= 0 q=5.1 Lsize= 42kB time=12.00 bitrate= 29.0kbits/s dup=0 drop=60
video:42kB audio:0kB global headers:0kB muxing overhead 1.741369%
root[shm]#

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Találtam egy szörnyű GUI-t.
http://www.miksoft.net/mobileMediaConverterUbuntu.htm

Mediaconverter...
Slackware-en elindul, ha deb2tgz lefut, csináltam valami mpeg2 konverziót.
De nem todom, mi zajlott a háttérben.
Az eredmény kiábrándító: az egyébként mindennel lejátszható flv hiányosan alakul át. Sok-sok perc hiányzik a kialakult videóból.
Mattot kaptam mára.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Ez jó, vagy nem jó?

avconv -codecs
Codecs:
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...S.. = Supports draw_horiz_band
....D. = Supports direct rendering method 1
.....T = Supports weird frame truncation

avconv -codecs|grep 264
D V D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
D V D h264_vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)
EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10

Ugyan tökéletesen tudatlanul pofázok bele, de a vlc-t próbáltad?

Csodálatos dolog történt.

amikor az avconv-ot fordítottam és lefutott a make install, a teljes xfce behalt, kde sem indul, csak ablakkezel nélkül tudod tolni kis slackware-emet.
Ameddig ezt meg nem oldom, ezzel itt leállok...

Agyhalál.
Ha xfce-tmégis elindítom, fontproblémák lépnek fel: kis téglalapok jelennek meg a betk helyén a menükben és a terminál karaktereinek a helyén. opera rootként indul, userként nem.
Meg hasonlók, ilyet még nem láttam. Annyira érdekes, hogy elhatároztam, nem állítok vissza rendszermentésbl semmit, rájövök mi varázsolta itt ezt nekem össze.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Meglehet, hogy a "make install" felülírta a mime adatbázist. Elvileg az /usr/share/mime könyvtárban van, elvileg rootként lefuttatva a következő parancs helyreteszi:

update-mime-database /usr/share/mime

A paransot a shared-mime-info nevű cucc tartalmazza.

Hogy mi íródik felül, kiderítheted, ha külön könyvtárba pakoltatod először a cuccot:

./configure [ szokásos paraméterek ]
make
mkdir /tmp/cucc
make install DESTDIR=/tmp/cucc

a források 95%-ánál működik, és helyesen működik

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Már nézem is:

root[a]# update-mime-database /usr/share/mime
Unknown media type in type 'all/all'
Unknown media type in type 'all/allfiles'
Unknown media type in type 'uri/mms'
Unknown media type in type 'uri/mmst'
Unknown media type in type 'uri/mmsu'
Unknown media type in type 'uri/pnm'
Unknown media type in type 'uri/rtspt'
Unknown media type in type 'uri/rtspu'
Unknown media type in type 'fonts/package'
Unknown media type in type 'interface/x-winamp-skin'
root[a]#

Akkor most reboot...
---------
Reboot után semmi változás, újraindítva a parancsot ugyanaz a hibaüzenet az unknownokkal.

Megnéztem, fluxbox, xfce, KDE mind halott, csak rootként megy a rendszer, de olykor ugyebár néhányprg nem indul így.

Visszaraktam egy 4 hónappal ezelőtti mime könyvtárat, semmi változás.

Nem értem. Csak egy videót akartamkonvertálni mindössze.
Csúnyán néztem volna?

---
--- A gond akkor van, ha látszólag minden működik. ---
---