Temat: Konwersja png na jpg

Mam taki problem. Potrzebuję wykresy z rrdtool przerobić na format jpg. Rrdtool potrafi generować tylko PNG. Format jpg jest mi potrzebny, żeby zobaczyć generowanie wykresy na telewizorze przez serwer DLNA. Telewizor obsługuje tylko jpega.
Widzę, że jest taki pakiet GraphicsMagic który chyba potrafi konwertować ale po jego zaintalowaniu nie widzę narzędzia gm, które właśnie powinno służyć do zmiany formatów.
Czy jest jakiś  inny program do konwersji na Openwrt?

2

Odp: Konwersja png na jpg

ffmpeg? Powienien działać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Konwersja png na jpg

ffmpeg fajnie działa na moim laptopie ale na routerze już nie sad
mam takie dziwny komunikat

ffmpeg -i wykres.png wykres.jpg

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --prefix=/usr --enable-shared --enable-static --disable-debug --enable-gpl --disable-libfaad --disable-mmx --disable-mmx2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --disable-vhook --enable-zlib --enable-postproc --disable-bsfs --disable-devices --disable-encoders --disable-decoders --enable-decoder=ac3 --enable-decoder=atrac3 --enable-decoder=h264 --enable-decoder=jpegls --enable-decoder=mp3 --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=mpeg4aac --enable-decoder=mpegvideo --enable-decoder=png --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=zlib --disable-muxers --enable-muxer=ffm --disable-demuxers --enable-demuxer=ac3 --enable-demuxer=ffm --enable-demuxer=h264 --enable-demuxer=mp3 --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-demuxer=rm --enable-demuxer=rtsp --enable-demuxer=sdp --disable-parsers --enable-parser=ac3 --disable-protocols --enable-protocol=rtp --enable-protocol=udp
  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
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Jul 11 2010 16:13:40, gcc: 4.3.3
wykres.png: no such file or directory

oczywiście scieżka do pliku jest podana prawidłowo, nawet jak podam bezwzględną to mi mówi, że nie ma takiego pliku

Widziałem, przy okazji minidlna, że masz skompilowałeś sobie swój własny ffmpeg. Może bym musiał właśnie to zrobić.

4

Odp: Konwersja png na jpg

--disable-protocols --enable-protocol=rtp --enable-protocol=udp  a nie ma protokołu file://

Zobacz moje lub przekompiluj.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Konwersja png na jpg

Przekompilowałem libffmpeg ale teraz mam nowy błąd. Czy mógłbyś sprawdzić czy twój ffmpeg działa. Nie mogę przetestować twojej paczki bo to inna architektura. Ja mam broadcoma.
Niby --enable-encoder=png jest

ffmpeg -i wykres.png -o abc.jpg
FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --prefix=/usr --enable-shared --enable-static --disable-debug --enable-gpl --disable-libfaad --disable-mmx --disable-mmx2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --disable-vhook --enable-zlib --enable-postproc --disable-ffserver --disable-bsfs --disable-devices --disable-encoders --enable-encoder=jpegls --enable-encoder=mpeg1video --enable-encoder=mpeg2video --enable-encoder=mpeg4 --enable-encoder=png --enable-encoder=zlib --disable-decoders --enable-decoder=ac3 --enable-decoder=atrac3 --enable-decoder=gif --enable-decoder=h264 --enable-decoder=jpegls --enable-decoder=mp2 --enable-decoder=mp3 --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=mpeg4aac --enable-decoder=mpegvideo --enable-decoder=png --enable-decoder=vorbis --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=zlib --disable-muxers --enable-muxer=ac3 --enable-muxer=ffm --enable-muxer=h264 --enable-muxer=mp3 --enable-muxer=mp4 --enable-muxer=mpeg1video --enable-muxer=mpeg2video --enable-muxer=mpegts --enable-muxer=ogg --enable-muxer=rtp --disable-demuxers --enable-demuxer=ac3 --enable-demuxer=ffm --enable-demuxer=h264 --enable-demuxer=mp3 --enable-demuxer=mpegps --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-demuxer=ogg --enable-demuxer=rm --enable-demuxer=rtsp --enable-demuxer=sdp --disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=h264 --enable-parser=mpegaudio --enable-parser=mpegvideo --enable-parser=mpeg4video --disable-protocols --enable-protocol=file --enable-protocol=http --enable-protocol=pipe --enable-protocol=rtp --enable-protocol=tcp --enable-protocol=udp
  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
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Jan  2 2011 21:21:30, gcc: 4.3.3
[mp3 @ 0x42d430]Could not find codec parameters (Audio: 0x0000, 0 channels, s16)
wykres.png: could not find codec parameters

6

Odp: Konwersja png na jpg

A bez -o nie działa?

7

Odp: Konwersja png na jpg

Dokładnie, bez -o

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Konwersja png na jpg

też ie działa

ffmpeg -i wykres.png  abc.jpg 

  built on Jan  2 2011 22:04:11, gcc: 4.3.3
[mp3 @ 0x42d430]Could not find codec parameters (Audio: 0x0000, 0 channels, s16)
wykres.png: could not find codec parameters

nie wiem dlaczego ffmpeg coś o audio wypisuje jeśli to tylko dwa obrazki

9

Odp: Konwersja png na jpg

ffmpeg -f image2 -i wykres.png  abc.jpg  ?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: Konwersja png na jpg

też nie działa a zaznaczyłem wszystko menuconfigu przy konfiguracji libffmpeg

ffmpeg -f image2 -i wykres.png abc.jpg
FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --prefix=/usr --enable-shared --enable-static --disable-debug --enable-gpl --disable-libfaad --disable-mmx --disable-mmx2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --disable-vhook --enable-zlib --enable-postproc --disable-ffserver --disable-bsfs --disable-devices --disable-encoders --enable-encoder=ac3 --enable-encoder=jpegls --enable-encoder=mpeg1video --enable-encoder=mpeg2video --enable-encoder=mpeg4 --enable-encoder=pcm_s16be --enable-encoder=pcm_s16le --enable-encoder=png --enable-encoder=vorbis --enable-encoder=zlib --disable-decoders --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=atrac3 --enable-decoder=gif --enable-decoder=h264 --enable-decoder=jpegls --enable-decoder=mp2 --enable-decoder=mp3 --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=mpeg4aac --enable-decoder=mpegvideo --enable-decoder=pcm_s16be --enable-decoder=pcm_s16le --enable-decoder=png --enable-decoder=vorbis --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=zlib --disable-muxers --enable-muxer=ac3 --enable-muxer=ffm --enable-muxer=h264 --enable-muxer=mp3 --enable-muxer=mp4 --enable-muxer=mpeg1video --enable-muxer=mpeg2video --enable-muxer=mpegts --enable-muxer=ogg --enable-muxer=oss --enable-muxer=rtp --disable-demuxers --enable-demuxer=ac3 --enable-demuxer=ffm --enable-demuxer=h264 --enable-demuxer=mp3 --enable-demuxer=mpegps --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-demuxer=ogg --enable-demuxer=rm --enable-demuxer=rtsp --enable-demuxer=sdp --disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=h264 --enable-parser=mpegaudio --enable-parser=mpegvideo --enable-parser=mpeg4video --disable-protocols --enable-protocol=file --enable-protocol=http --enable-protocol=pipe --enable-protocol=rtp --enable-protocol=tcp --enable-protocol=udp
  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
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Jan  2 2011 22:04:11, gcc: 4.3.3
Unknown input or output format: image2

11

Odp: Konwersja png na jpg

To skompiluj jeszcze raz, tylko w makefile wywal wszystkie disable-parsers/endoder/decoder/protocol itd. Niech sam skompiluje wszystko domyślnie. To co zaznaczasz to w menuconfig to nie jest  wszystko co możliwe.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez p4trykx 2011-01-03 00:29:36)

Odp: Konwersja png na jpg

Mógłbyś trochę sprecyzować. Nie jestem zbyt obeznany z kompilacji Openwrt. Widzę, że mam taki katalog

 backfire/build_dir/target-mipsel_uClibc-0.9.30.1/ffmpeg-0.5.2

Tam mam coś pozmieniać? Bo w Makefile nie widzę żadnego disable
Czy po zmianach jeśli zrobię make w katalogu głównym backfire to będę mial w bin/..../packages ten skompilowany pakiet ?
EDIT
Chyba znalazłem
backfire/package/feeds/packages/ffmpeg/Makefile

13

Odp: Konwersja png na jpg

jak masz php i biblioteke gd to ta funkcja ci zalatwi sprawe:

function png2jpg($originalFile, $outputFile, $quality) {
    $image = imagecreatefrompng($originalFile);
    imagejpeg($image, $outputFile, $quality);
    imagedestroy($image);
}

bez kombinacji wink
użycie: png2jpg('źródełko.png', 'wynik.jpg', '1-100');
ostatni parametr to kompresja jpeg

14 (edytowany przez patryk 2011-01-03 02:28:40)

Odp: Konwersja png na jpg

albo tak:
robisz sobie skrypt:

#!/usr/bin/php-cli
<?php
$plik = $argv[1];
$image = imagecreatefrompng($plik);
imagejpeg($image);
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>

i z wiersza poleceń: skrypt.php /scieżka/do/pliku.png > /plik/wyjściowy.jpg
(nie wiem dlaczego ale do przeglądarki skurczybyk nie chce jotpegow wyrzucac...)
ale z wiersza polecen dziala jak zloto wink
wink
---edit---
oczywiście potrzebujesz do tego php-cli (ja mam php5-cli)

15

Odp: Konwersja png na jpg

Więc udało mi się skompilować opasłe libffmpeg (1,5 MB) i rzeczywiście konwertuje. Usunięcie tych wpisów --disable to było to.
Php też zainstalowałem razem z libgd i po kilku modyfikacjach plików konfiguracyjnych konwersja działa.
Na oko wydaje się, że ffmpeg jest szybsze od skryptu php.
Wielkie dzięki za pomoc!