MEncoder создает "плохие" avi-файлы
очевидно: не использовать MEncoder
Ну чтобы ответить на этот вопрос, наверное нужно иметь доступ к сжатому тобой файлу... Как минимум. А еще неплохо бы полную командную строку для сжатия.
"A second part of the problem is case sensitivity in the FOURCC codes. For example vcodec=msmpeg4 produces a stream with FOURCC "div3" instead of "DIV3". Vdub is not smart enough to match the two."
берёшь двоичный редактор и правишь -- не факт, что поможет, но возможно дело в этом.
orig.avi - оригинальный файл
menc.avi - сжатый MEncoder 1.0-pre5
vdub.avi - сжатый Virtual Dub 1.5.10
В обоих случаях использовался XViD 1.0.2
Сжималось так:
mencoder orig.avi -oac copy -vf crop=352:288:5:0 -ovc xvid -xvidencopts pass=1:bitrate=950:vhq=4:gmc:hq_ac -o /dev/null
mencoder orig.avi -oac copy -vf crop=352:288:5:0 -ovc xvid -xvidencopts pass=2:bitrate=950:vhq=4:gmc:hq_ac
XVID настроен так, чтобы он понимал FOURCC и XVID, и xvid, и XViD, так что дело не в этом.
дело не в этом. VirtualDub конкретно глючит на этом файле. При перемотке вперед и перемотке назад показывает разные кадры.
проблема в том, что MPlayer/MEncoder - основное средства для работы с видео под Linux. Особых альтернатив тут нет.
.....
вот это в начале файла сжатого менкодером -- большинство плееров от этого наверно умирает =) (из тех, которыми я пользуюсь, схавал только crystal)
Ты можешь указать место в спецификации AVI или MPEG4 которому они противоречат?
Но это не мешает им проигрывать orig.avi
в области кодирования видео - согласен
но для меня это не основная задача
я гораздо чаще занимаюсь разработкой программ. также у меня в фоне висит очень много прог, например SMBSearch. когда-то давно он работал под windows xp. однако, многозадачность в windows почему-то не позволяла работать за компьютером, пока он обрабатывал большие запросы. например, при просмотре фильма кадры дергались. я спрашивал об этом в форуме, копал настройки -- не помогало. пришлось обратно уйти в linux.
ftp://braindead.hackers/
Там три файла.
1) menc1.avi - создан с помощью mencoder -ovc copy -oac copy menc.avi -o menc1.avi
Это просто для проверки на вшивость твоего mencoder
2) menc_avimerge.avi - c помощью avimerge -i menc.avi -o menc_avimerge.avi
В сущности это тот же авишник но с другим хедером
3) menc.ogm - это авишник, положенный в другой контейнер. Для проверки виноваты ли авишные хедеры или сами данные.
Попробуй их погонять и сообщи результаты.
Trying 172.16.34.149...
telnet: Unable to connect to remote host: Connection refused
[lorien ~]$ telnet braindead.hackers 445
Trying 172.16.34.149...
telnet: Unable to connect to remote host: Connection refused
[lorien ~]$ telnet braindead.hackers 21
Trying 172.16.34.149...
telnet: Unable to connect to remote host: Connection refused
[lorien ~]$ ping braindead.hackers
PING braindead.hackers (172.16.34.149) 56(84) bytes of data.
64 bytes from braindead.hackers (172.16.34.149): icmp_seq=1 ttl=63 time=0.398 ms
А ты чего хотел? Конечно я уже все зашарил... Теперь можешь забирать.
1) menc1.avi - не смотрится WMP, в Virtual Dub наблюдаются глюки
2) menc_avimerge.avi - смотрится в WMP, в Virtual Dub все равно глюки
3) menc.ogm - смотрится в WMP, Virtual Dub его вообще не открывает (похоже он только для avi)
Похоже, что кривой и заголовок, и сами данные.
Как ты следал menc_avimerge.avi? Что изменил в заголовках.
Я же написал: avimerge -i menc.avi -o menc_avimerge.avi
Ну это понятно Вопрос что там такое сделал avimerge?
Да, кстати, а почему ты сжимаешь xvid'ом? Мне вот весьма нравится собственный кодек mencoder'а
Он прочел файл, и записал его заново. С новым хедером.
Это какой именно? среди того что умеет libavcodec (-ovc lavc) самое приличное - Divx 4/5. Я проверял свой файл, на этом же битрейт DivX жмет хуже, чем XViD.
#! /bin/sh
source ./options
crop_n=`./goodcrop $crop`
echo "Выбранный crop: $crop. Изменяем до $crop_n"
echo "Выбранный bitrate = $bitrate kbps"
echo "Выбранные файлы: $files"
uit=`./useinvtel.py $fps`
if [ "$uit" = "yes" ]
then
echo "Выбранный размер: "`./goodsize 23.976`
./mycat "$files" | mencoder - -fps 29.97 -ofps 23.976 -oac copy -vf filmdint=crop="$crop_n",hqdn3d,pp=hb/vb/dr,scale=`./goodsize 23.976` -zoom \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$bitrate:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:vpass="$1" \
-o "pass$1.avi"
else
echo "Выбранный размер: "`./goodsize $fps`
./mycat "$files" | mencoder - -oac copy -vf crop="$crop_n",hqdn3d,pp=hb/vb/dr,scale=`./goodsize $fps` -zoom \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$bitrate:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:vpass="$1" \
-o "pass$1.avi"
fi
rm ./pass1.avi
И результат меня весьма устраивает.
Если интересно, то могу выложить свои скрипты. Они предназначены в основном для сжатия DVD, но могут быть использованы и просто так. Они сами подбирают родходящий размер изображения, высчитывают нужный битрейт для заданного выходного объема, делают обрезание картинки... В общем все полностью автоматизировано
Я пробовал так:
vcodec=mpeg4:vbitrate=$bitrate:v4mv:mbd=2:trell:cmp=3
Результат получается хуже, чем у xvid.
Не думаю что опции subcmp=3:mbcmp=3 могут на что-то вляить.
Это особенность исходного материала. При оцифровке VHS-кассеты записей с любительской камеры, получающееся изображение шумное, сильно дрожжит. На таки вещах DivX работает плохо. При сжатии DVD таких проблем нет.
Во первых, это НЕ DivX codec. Это опенсурс кодек, разрабатываемый под эгидой mplayer Про шумное изображение: а ты заметил hqdn3d,pp=hb/vb/dr ? Это очень хорошо помогает от этого... Попробуй.
Если не сложно, можешь дать исходный материал? Я поэкспериментирую, посмотрю чем действительно лучше сжимать...
vcodec=<value>
use the specified codec (default: mpeg4):
mpeg4 - DivX 4/5
Кодек, то opensource конечно, но он работает по алгоритму DivX, поэтому все те же свойства.
Изображение плохое не в том, что точки шумят, а оно само целиком ездит в разные стороны. С этим никаким denoiser-ом не справится. Нужна система компенсации движения.
Материал могу дать. В принципе, попробуй на той же самом куске который я расшарил - там все эти глюки видны
vme=<0-5>
motion estimation method. Available methods are:
0
none (very low quality)
1
full (slow, currently unmaintained and disabled)
2
log (low quality, currently unmaintained and disabled)
3
phods (low quality, currently unmaintained and disabled)
4
EPZS: size=1 diamond, size can be adjusted with the *dia options (default)
5
X1 (experimental, currently aliased to EPZS)
NOTE: 0-3 currently ignores the amount of bits spent, so quality may be low.
me_range=<0-9999>
motion estimation search range (default: 0 (unlimited
а то они вобще любители делать глюкавые релизы.
у них такой стиль разработки
если лень качать у меня на ftp://communique.hackers/src/mplayer есть сегоняшний снэпшот.
Оставить комментарий
Landstreicher
Наблюдается такая проблема: при кодирования файла в MEncoder он создает avi-файл, который нормально играется MPlayer, но другие программы на нем глючат. Например, глючит Virtual Dub, файл отказывается играть Light Alloy, Windows Media Player. Этот же файл, сжатый этой же версией этого же кодека, но в VirtualDub везде нормально играется, никаких проблем нет.Поиск в инете выявил пару похожих проблем:
http://zebra.fh-weingarten.de/~maxi/html/mplayer-users/2003-07/msg01033.html
http://zebra.fh-weingarten.de/~maxi/html/transcode-devel/2004-03/msg00006.html
Кто-нибудь с этим сталкивался? Какие есть способы решения?