Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
mencoder -input video.mov -output video.avi
Řešení dotazu:
ffmpeg -i vstup.mov vystup.avi
Když si s nastavením nechci lámat hlavu, tak to stačí takhle, jen bývá rozumné použít parametr -sameq
, který omezí kompresi na minimum (same quality)
Když potřebuju složitější parametry, tak si je většinou vygooglím...
-acodec
(audio) a -vcodec
(video)
A je potřeba najít ty, které člověk potřebuje... Vypadá to pak nějak takto:
ffmpeg -vcodec libtheora -acodec libvorbis -sameq -i infile.avi outfile.ogv
ffmpeg -vcodec libtheora -acodec libvorbis -sameq -i P1020196.MOV outfile.ogv FFmpeg version SVN-r0.5.6-4:0.5.6-3, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.6-3 --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 --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdc1394 --enable-shared --disable-static libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Dec 31 2011 15:16:11, gcc: 4.4.5 Unknown decoder 'libtheora'
ffmpeg -i P1020196.MOV -ab 128 -b 1024k -vcodec mpeg4 -acodec libmp3lame converted.mp4 FFmpeg version SVN-r0.5.6-4:0.5.6-3, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.6-3 --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 --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdc1394 --enable-shared --disable-static libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Dec 31 2011 15:16:11, gcc: 4.4.5 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'P1020196.MOV': Duration: 00:00:12.50, start: 0.000000, bitrate: 23279 kb/s Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720, 30 tbr, 30 tbn, 30 tbc Stream #0.1(eng): Audio: pcm_s16be, 16000 Hz, mono, s16, 256 kb/s WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s Unknown encoder 'libmp3lame'
ffmpeg -i P1020196.MOV -ab 128 -b 1024k -vcodec mpeg4 -acodec aac converted.mp4 FFmpeg version SVN-r0.5.6-4:0.5.6-3, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.6-3 --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 --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdc1394 --enable-shared --disable-static libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Dec 31 2011 15:16:11, gcc: 4.4.5 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'P1020196.MOV': Duration: 00:00:12.50, start: 0.000000, bitrate: 23279 kb/s Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720, 30 tbr, 30 tbn, 30 tbc Stream #0.1(eng): Audio: pcm_s16be, 16000 Hz, mono, s16, 256 kb/s WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s Unknown encoder 'aac'
No popravde neni to jednoduche provest konverzi pomoci ffmpegu. At volim jako kodeky cokoliv tak mi to nikdy neprojde:(A co číst chybové hlášky? Ty tam nejsou jen tak z legrace. Prvních pár odstavců manuálnu taky lecos osvětlí.
System je Debian Squeeze 32bitAno,ffmpeg -vcodec libtheora -acodec libvorbis -sameq -i P1020196.MOV outfile.ogv FFmpeg version SVN-r0.5.6-4:0.5.6-3, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.6-3 --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 --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdc1394 --enable-shared --disable-static libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Dec 31 2011 15:16:11, gcc: 4.4.5 Unknown decoder 'libtheora'
-vcodec
před -i
znamená, že chceš nastavit decoder. Na což to správně hlásí že takový decoder nezná. Na nastavení encoderu musíš přesunout -vcodec
před název výstupního souboru.
0.5 je prehistorie. Silně doporučuju upgradovat na nějakou novější verzi. Jinak snažíš se nastavit audio bitrate nad 128 bitů za sekundu, což by asi stejně nefungovalo.ffmpeg -i P1020196.MOV -ab 128 -b 1024k -vcodec mpeg4 -acodec libmp3lame converted.mp4 FFmpeg version SVN-r0.5.6-4:0.5.6-3, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.6-3 --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 --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad --enable-libdc1394 --enable-shared --disable-static libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 libavfilter 0. 4. 0 / 0. 4. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Dec 31 2011 15:16:11, gcc: 4.4.5 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'P1020196.MOV': Duration: 00:00:12.50, start: 0.000000, bitrate: 23279 kb/s Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720, 30 tbr, 30 tbn, 30 tbc Stream #0.1(eng): Audio: pcm_s16be, 16000 Hz, mono, s16, 256 kb/s WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s Unknown encoder 'libmp3lame'
-sameq
NEZNAMENÁ "same quality", ale "same quantizer" (v avconvu jsme tuhle volbu přejmenovali na -same_quant
právě z tohohle důvodu). V praxi to znamená to, že při překodování videa z mpegovitého formátu na mpegovitý formát (nikdy jindy to nefunguje) se pro každý frame použije stejný quantizer jako pro příšlušný vstupní frame. V závislosti na situaci se to může více či méně blížit tomu, co si člověk představuje pod pojmem "same quality". Obecně se ale na tuhle volbu díváme s nedůvěrou, protože většinou ji lidi používají aniž vědí co činí, a v tom případě nedělá co asi chtějí.
ffmpeg -threads 4 -i INPUT_FILE -deinterlace -vcodec libx264 -ac 1 -ab 128k -acodec aac -strict experimental -vol 1000 -b 400k -ss 100 -t 3600 -y OUTPUT_FILE.mkv
susímu ffmpegu se musí narvat -strict experimental, aby kódoval do AAC :)Protože náš aac encoder je experimentální hrůza. Při vyšších bitratech by se snad dal poslouchat, ale faac je lepší. Netrváš-li na AAc, tak ještě lepší je lame a úplně nejlepší libvorbis (pokud nepočítáme lossless).
-deinterlace, protože grabujeme z kamery, ze které leze prokládaný obraz
-deinterlace
je vraždění štěňat, ve jménu všeho co je dobré a správné použij -vf yadif
.
-deinterlace, protože grabujeme z kamery, ze které leze prokládaný obraz-deinterlace
je vraždění štěňat, ve jménu všeho co je dobré a správné použij-vf yadif
.
-deinterlace
používá hodně nekvalitní algoritmus, což je zřejmé už z toho, že deinterlacing dělá pouze z jednoho snímku. V novém avconvu je -deinterlace
deprecated a bude odstraněna.
Yadif už pořádný deinterlacer portovaný z mplayeru.
ale faac je lepšíHmm, tenhle susí ffmpeg je očividně bez něj :(. Že bych si zakompiloval?
tak ještě lepší je lameJsem měl za to, že MP3 má mnohem horší možnosti než AAC. To je faac taková hrůza?
-deinterlace je vraždění štěňat, ve jménu všeho co je dobré a správné použij -vf yadifDík, zkusím. (stejně se tam nic nehýbe…)
To sice má, ale kvalita encoderu má na výsledek mnohem větší vliv než rozdíly mezi specifikacemi (viz např. test kde mpeg4 ASP encoder v libavcodecu porazil některé odpadní H.264 encodery). A co se týče kvality, tak AFAIK lame je vysoko nad faac.ale faac je lepšíHmm, tenhle susí ffmpeg je očividně bez něj :(. Že bych si zakompiloval?tak ještě lepší je lameJsem měl za to, že MP3 má mnohem horší možnosti než AAC. To je faac taková hrůza?
#!/bin/sh NAME=`basename ${0}` case "$NAME" in mpeg2avi-[0-9]*) BITRATE=${NAME##mpeg2avi-} ;; *) BITRATE=2000 ;; esac BITRATE_A=128 BITRATE_V=$((${BITRATE}-${BITRATE_A})) INPUT="${1}" OUTPUT="${INPUT%.*}.avi" PASSLOG="${1}.pass" /usr/bin/nice -n 20 \ /usr/bin/ffmpeg \ -vf "yadif" \ -i "${INPUT}" \ -vcodec libxvid -g 250 -bf 2 -r 25 -b ${BITRATE_V}k \ -an \ -pass 1 -passlogfile "${PASSLOG}" \ -f rawvideo -y /dev/null /usr/bin/nice -n 20 \ /usr/bin/ffmpeg \ -vf "yadif" \ -i "${INPUT}" \ -vcodec libxvid -g 250 -bf 2 -r 25 -b ${BITRATE_V}k \ -acodec libmp3lame -ab ${BITRATE_A}k -ar 48000 -async 48000 -ac 2 \ -pass 2 -passlogfile "${PASSLOG}" \ -f avi \ -y "${OUTPUT}" if [ -f "${PASSLOG}" ]; then rm "${PASSLOG}"; fi
#!/bin/bash #Run as $bash prevod.sh ;because with $sh it`s not work. This bash script need function which sh dont support. That`s all.function checkyn { read yesnodel } echo " Please set the folder name for future save your video(s) (~/Videos/" read fold mkdir ~/Videos/$fold echo "Delete original videos after the video compress will be done? (y/n)" yesnodel="" checkyn while [ "$yesnodel" != "y" ] && [ "$yesnodel" != "n" ] do echo "Repeat your answer: (y/n)" checkyn done for F in *.avi do nameMP4=`echo "$F" |sed -e 's/.avi/.mp4/'` echo "Compressing video "$F" at "$nameMP4 ffmpeg -y -i $F -r 25 -b 1200k -ar 22050 -acodec libmp3lame -ab 128000 ~/Videos/$fold/$nameMP4 echo "Compressing video "$F" at "$nameMP4" done." if [ "$yesnodel" = "y" ];then rm $F fi done
ffmpeg -i 01-kreslo.flv -vcodec libxvid -acodec libmp3lame -b:v 1600k -b:a 128k 01-kreslo.avi
Tiskni
Sdílej: