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."
берёшь двоичный редактор и правишь -- не факт, что поможет, но возможно дело в этом.
"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, так что дело не в этом.
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 конкретно глючит на этом файле. При перемотке вперед и перемотке назад показывает разные кадры.
дело не в этом. VirtualDub конкретно глючит на этом файле. При перемотке вперед и перемотке назад показывает разные кадры.
проблема в том, что MPlayer/MEncoder - основное средства для работы с видео под Linux. Особых альтернатив тут нет.
[= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =][= MPlayer junk data! =]
.....
вот это в начале файла сжатого менкодером -- большинство плееров от этого наверно умирает =) (из тех, которыми я пользуюсь, схавал только crystal)
.....
вот это в начале файла сжатого менкодером -- большинство плееров от этого наверно умирает =) (из тех, которыми я пользуюсь, схавал только crystal)
Вполне нормальные данные imho.
Ты можешь указать место в спецификации AVI или MPEG4 которому они противоречат?
Ты можешь указать место в спецификации AVI или MPEG4 которому они противоречат?
Но это не мешает им проигрывать orig.avi 

все зависит от задач
в области кодирования видео - согласен
но для меня это не основная задача
я гораздо чаще занимаюсь разработкой программ. также у меня в фоне висит очень много прог, например SMBSearch. когда-то давно он работал под windows xp. однако, многозадачность в windows почему-то не позволяла работать за компьютером, пока он обрабатывал большие запросы. например, при просмотре фильма кадры дергались. я спрашивал об этом в форуме, копал настройки -- не помогало. пришлось обратно уйти в linux.
в области кодирования видео - согласен
но для меня это не основная задача
я гораздо чаще занимаюсь разработкой программ. также у меня в фоне висит очень много прог, например 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 - это авишник, положенный в другой контейнер. Для проверки виноваты ли авишные хедеры или сами данные.
Попробуй их погонять и сообщи результаты.
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 - это авишник, положенный в другой контейнер. Для проверки виноваты ли авишные хедеры или сами данные.
Попробуй их погонять и сообщи результаты.
[lorien ~]$ telnet braindead.hackers 139
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
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? Что изменил в заголовках.
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 -i menc.avi -o menc_avimerge.avi
Ну это понятно
Вопрос что там такое сделал avimerge?
Ну это понятно
Вопрос что там такое сделал 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, но могут быть использованы и просто так. Они сами подбирают родходящий размер изображения, высчитывают нужный битрейт для заданного выходного объема, делают обрезание картинки... В общем все полностью автоматизировано 

Ты пакуешь как раз в DivX 4/5 при помощи libavcodec.
Я пробовал так:
vcodec=mpeg4:vbitrate=$bitrate:v4mv:mbd=2:trell:cmp=3
Результат получается хуже, чем у xvid.
Не думаю что опции subcmp=3:mbcmp=3 могут на что-то вляить.
Это особенность исходного материала. При оцифровке VHS-кассеты записей с любительской камеры, получающееся изображение шумное, сильно дрожжит. На таки вещах DivX работает плохо. При сжатии 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 ? Это очень хорошо помогает от этого... Попробуй. 
Про шумное изображение: а ты заметил hqdn3d,pp=hb/vb/dr ? Это очень хорошо помогает от этого... Попробуй. 
Если не сложно, можешь дать исходный материал? Я поэкспериментирую, посмотрю чем действительно лучше сжимать...
man mplayer:
vcodec=<value>
use the specified codec (default: mpeg4):
mpeg4 - DivX 4/5
Кодек, то opensource конечно, но он работает по алгоритму DivX, поэтому все те же свойства.
Изображение плохое не в том, что точки шумят, а оно само целиком ездит в разные стороны. С этим никаким denoiser-ом не справится. Нужна система компенсации движения.
Материал могу дать. В принципе, попробуй на той же самом куске который я расшарил - там все эти глюки видны
vcodec=<value>
use the specified codec (default: mpeg4):
mpeg4 - DivX 4/5
Кодек, то opensource конечно, но он работает по алгоритму DivX, поэтому все те же свойства.
Изображение плохое не в том, что точки шумят, а оно само целиком ездит в разные стороны. С этим никаким denoiser-ом не справится. Нужна система компенсации движения.
Материал могу дать. В принципе, попробуй на той же самом куске который я расшарил - там все эти глюки видны
В lavc есть компенсация движения: man mplayer
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
попробуй mplayer из cvs
а то они вобще любители делать глюкавые релизы.
у них такой стиль разработки
если лень качать у меня на ftp://communique.hackers/src/mplayer есть сегоняшний снэпшот.
а то они вобще любители делать глюкавые релизы.
у них такой стиль разработки

если лень качать у меня на 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
Кто-нибудь с этим сталкивался? Какие есть способы решения?