Videos direkt auf der Synology konvertieren

Status
Für weitere Antworten geschlossen.

starwhooper

Benutzer
Mitglied seit
07. Jul 2009
Beiträge
61
Punkte für Reaktionen
1
Punkte
12
Moin,

meine Situation: Ich ich habe eine DS214+ mit dem aktuellsten DSM. Auf dieser will ich Videos konvertieren, da diese sowieso immer läuft.

Ich möchte die Videos mit dem vom Synology installieren ffmpeg konvertieren, da ich möglichst wenig fremdsoftware auf dem System installieren möchte.

Ich nutze folgendes Kommando:
ffmpeg -y -i n3test.mpg -c:v mpeg4 -c:a copy n3test.mp4

Das ffmpeg startet daraufhin:
ffmpeg version 2.0.2 Copyright (c) 2000-2013 the FFmpeg developers
built on Mar 4 2014 16:34:21 with gcc 4.6.4 (Linaro GCC branch-4.6.4. Marvell GCC Dev 201310-2126.3d181f66 64K MAXPAGESIZE ALIGN)
configuration: --prefix=/usr/syno --incdir='${prefix}/include/ffmpeg' --arch=arm --target-os=linux --cross-prefix=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-shared --disable-static --enable-version3 --enable-nonfree --enable-libfaac --enable-encoders --enable-pthreads --disable-bzlib --disable-protocol=rtp --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffserver --disable-ffplay --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --disable-decoder=amrnb --disable-encoder=zmbv --disable-encoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=eac3 --disable-decoder=dca --disable-decoder=eac3 --disable-decoder=truehd --cc=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ccache-gcc
libavutil 52. 38.100 / 52. 38.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.100 / 55. 12.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 79.101 / 3. 79.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100


Erkennt den input erfolgreich:
Input #0, mpeg, from 'n3test.mpg':
Duration: 00:04:59.98, start: 0.235044, bitrate: 4826 kb/s
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s


Bestimmt auch den Output erfolgreich:
Output #0, mp4, to 'n3test.mp4':
Stream #0:0: Video: mpeg4, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream #0:1: Audio: ac3, 48000 Hz, stereo, 256 kb/s


Fängt an zu konvertieren:
Stream mapping:
Stream #0:1 -> #0:0 (mpeg2video -> mpeg4)
Stream #0:2 -> #0:1 (copy)


Und bricht dann hiermit ab:
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Ich habe daraufhin das Kommando mit Auflösung, Bitrate und Bildrate ergänzt:
ffmpeg -y -i n3test.mpg -c:v mpeg4 -b:v 100k -r 20 -s 320x200 -c:a copy n3test.mp4 (Ja, ich weiss das die Werte zu einer sehr schlechten Qualität führen würden)

Die neuen Werte werden akzeptiert, aber am ende erhalte ich die gleiche Fehlermeldung.
Ich habe auch schon fürs den Videostream "copy" angegeben, das funktioniert, macht ja aber wenig sinn.

Wo liegt der Fehler ?

Gruß, Thiemo
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.639
Punkte für Reaktionen
2.046
Punkte
829
Probiere es bitte einmal mit folgendem Aufruf:

Rich (BBCode):
ffmpeg '-y -i n3test.mpg -b:v 100k -f mp4 -vcodec libx264 -s 320x200 -c:a copy n3test.mp4'

Ist jetzt von einem Linux-Server-Aufruf abgeleitet. Insofern weiß ich nicht, ob Du die libx264 überhaupt auf der DS hast.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
Gibt es bei dem zweiten Versuch vielleicht eine Fehlermeldung die du übersehen hast? Eventuell ist ihm die bitrate von 100k zu niedrig.
Hast du mal probiert das Seitenverhältnis beizubehalten, also z.B. 250x200?
Funktioniert eventuell neben copy noch ein anderer Video-Codec?

Hab auch keine Ahnung, ob Synology bei ffmpeg irgendwas "wegcompiliert" hat. "mpeg4" ist ja eigentlich der native ffmpeg codec für mp4


Edit:

Mit "ffmpeg -formats" kannst du dir unterstützte (E)ncoder und (D)ecoder ansehen. mpeg4 findet sich auf meiner Syno nicht mp4 dagegen schon.
 

starwhooper

Benutzer
Mitglied seit
07. Jul 2009
Beiträge
61
Punkte für Reaktionen
1
Punkte
12
Probiere es bitte einmal mit folgendem Aufruf:

Rich (BBCode):
ffmpeg '-y -i n3test.mpg -b:v 100k -f mp4 -vcodec libx264 -s 320x200 -c:a copy n3test.mp4'

Ist jetzt von einem Linux-Server-Aufruf abgeleitet. Insofern weiß ich nicht, ob Du die libx264 überhaupt auf der DS hast.

Danke, aber libx264 ist nicht bekannt. Aus der DS kennt der nur folgende encoder:
V..... a64multi Multicolor charset for Commodore 64 (codec a64_multi)
V..... a64multi5 Multicolor charset for Commodore 64, extended with 5th color (colram) (codec a64_multi5)
V..... amv AMV Video
V..... asv1 ASUS V1
V..... asv2 ASUS V2
V..... avrp Avid 1:1 10-bit RGB Packer
V..X.. avui Avid Meridien Uncompressed
V..... ayuv Uncompressed packed MS 4:4:4:4
V..... bmp BMP (Windows and OS/2 bitmap)
V..... cljr Cirrus Logic AccuPak
V.S... dnxhd VC3/DNxHD
V..... dpx DPX image
V.S... dvvideo DV (Digital Video)
V.S... ffv1 FFmpeg video codec #1
V..... ffvhuff Huffyuv FFmpeg variant
V..... flashsv Flash Screen Video
V..... flashsv2 Flash Screen Video Version 2
V..... flv FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (codec flv1)
V..... gif GIF (Graphics Interchange Format)
V..... h261 H.261
V..... h263 H.263 / H.263-1996
V.S... h263p H.263+ / H.263-1998 / H.263 version 2
V..... huffyuv Huffyuv / HuffYUV
V..X.. jpeg2000 JPEG 2000
V..... jpegls JPEG-LS
V..... ljpeg Lossless JPEG
VFS... mjpeg MJPEG (Motion JPEG)
V.S... mpeg1video MPEG-1 video
V.S... mpeg2video MPEG-2 video
V.S... mpeg4 MPEG-4 part 2
V..... msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2
V..... msmpeg4 MPEG-4 part 2 Microsoft variant version 3 (codec msmpeg4v3)
V..... msvideo1 Microsoft Video-1
V..... pam PAM (Portable AnyMap) image
V..... pbm PBM (Portable BitMap) image
V..... pcx PC Paintbrush PCX image
V..... pgm PGM (Portable GrayMap) image
V..... pgmyuv PGMYUV (Portable GrayMap YUV) image
VF.... png PNG (Portable Network Graphics) image
V..... ppm PPM (Portable PixelMap) image
VF.... prores Apple ProRes
VF.... prores_aw Apple ProRes (codec prores)
V.S... prores_ks Apple ProRes (iCodec Pro) (codec prores)
V..... qtrle QuickTime Animation (RLE) video
V..... r10k AJA Kona 10-bit RGB Codec
V..... r210 Uncompressed RGB 10-bit
V..... rawvideo raw video
V..... roqvideo id RoQ video (codec roq)
V..... rv10 RealVideo 1.0
V..... rv20 RealVideo 2.0
V..... sgi SGI image
V..... snow Snow
V..... sunrast Sun Rasterfile image
V..... svq1 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
V..... targa Truevision Targa image
V..... tiff TIFF image
V..... utvideo Ut Video
V..... v210 Uncompressed 4:2:2 10-bit
V..... v308 Uncompressed packed 4:4:4
V..... v408 Uncompressed packed QT 4:4:4:4
V..... v410 Uncompressed 4:4:4 10-bit
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
V..... xbm XBM (X BitMap) image
V..... xface X-face image
V..... xwd XWD (X Window Dump) image
V..... y41p Uncompressed YUV 4:1:1 12-bit
V..... yuv4 Uncompressed packed 4:2:0
V..... zlib LCL (LossLess Codec Library) ZLIB


Ich habe es mal mit anderen den h26... codecs probiert. Hier muss ich teilweise die Auflösung anpassen, damit der codec diese unterstützt, aber die Fehlermeldung am Ende bleibt die gleiche.
 

starwhooper

Benutzer
Mitglied seit
07. Jul 2009
Beiträge
61
Punkte für Reaktionen
1
Punkte
12
Schonmal danke für die Tipps.

Ich habe nun mal folgendes probiert:
ffmpeg -y -i n3test.mpg -f mp4 -c:v mpeg4 -b:v 1000k -r 25 -s 720x576 -c:a copy n3test.mp4

Ergebnis
Input #0, mpeg, from 'n3test.mpg':
Duration: 00:04:59.98, start: 0.235044, bitrate: 4826 kb/s
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s

Output #0, mp4, to 'n3test.mp4':
Stream #0:0: Video: mpeg4, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 1000 kb/s, 90k tbn, 25 tbc
Stream #0:1: Audio: ac3, 48000 Hz, stereo, 256 kb/s


Stream mapping:
Stream #0:1 -> #0:0 (mpeg2video -> mpeg4)
Stream #0:2 -> #0:1 (copy)[/FONT]

Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Ich habe die befürchtung das Synology das Ding etwas entmannt hat, und daher nicht alle en/de-coder aus der üblichen version vorhanden sind.

Gruß, Thiemo
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
Edit: Habe mal "ffmpeg -formats" mit der Ausgabe von "ffmpeg -encoders" ersetzt. DS-1812+

Encoders:
V..... = Video
A..... = Audio
S..... = Subtitle
.F.... = Frame-level multithreading
..S... = Slice-level multithreading
...X.. = Codec is experimental
....B. = Supports draw_horiz_band
.....D = Supports direct rendering method 1
------
V..... a64multi Multicolor charset for Commodore 64 (codec a64_multi)
V..... a64multi5 Multicolor charset for Commodore 64, extended with 5th color (colram) (codec a64_multi5)
V..... amv AMV Video
V..... asv1 ASUS V1
V..... asv2 ASUS V2
V..... avrp Avid 1:1 10-bit RGB Packer
V..X.. avui Avid Meridien Uncompressed
V..... ayuv Uncompressed packed MS 4:4:4:4
V..... bmp BMP (Windows and OS/2 bitmap)
V..... cljr Cirrus Logic AccuPak
V.S... dnxhd VC3/DNxHD
V..... dpx DPX image
V.S... dvvideo DV (Digital Video)
V.S... ffv1 FFmpeg video codec #1
V..... ffvhuff Huffyuv FFmpeg variant
V..... flashsv Flash Screen Video
V..... flashsv2 Flash Screen Video Version 2
V..... flv FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (codec flv1)
V..... gif GIF (Graphics Interchange Format)
V..... h261 H.261
V..... h263 H.263 / H.263-1996
V.S... h263p H.263+ / H.263-1998 / H.263 version 2
V..... libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V..... libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V..... huffyuv Huffyuv / HuffYUV
V..X.. jpeg2000 JPEG 2000
V..... jpegls JPEG-LS
V..... ljpeg Lossless JPEG
VFS... mjpeg MJPEG (Motion JPEG)
V.S... mpeg1video MPEG-1 video
V.S... mpeg2video MPEG-2 video
V.S... mpeg4 MPEG-4 part 2
V..... msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2
V..... msmpeg4 MPEG-4 part 2 Microsoft variant version 3 (codec msmpeg4v3)
V..... msvideo1 Microsoft Video-1
V..... pam PAM (Portable AnyMap) image
V..... pbm PBM (Portable BitMap) image
V..... pcx PC Paintbrush PCX image
V..... pgm PGM (Portable GrayMap) image
V..... pgmyuv PGMYUV (Portable GrayMap YUV) image
VF.... png PNG (Portable Network Graphics) image
V..... ppm PPM (Portable PixelMap) image
VF.... prores Apple ProRes
VF.... prores_aw Apple ProRes (codec prores)
V.S... prores_ks Apple ProRes (iCodec Pro) (codec prores)
V..... qtrle QuickTime Animation (RLE) video
V..... r10k AJA Kona 10-bit RGB Codec
V..... r210 Uncompressed RGB 10-bit
V..... rawvideo raw video
V..... roqvideo id RoQ video (codec roq)
V..... rv10 RealVideo 1.0
V..... rv20 RealVideo 2.0
V..... sgi SGI image
V..... snow Snow
V..... sunrast Sun Rasterfile image
V..... svq1 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
V..... targa Truevision Targa image
V..... tiff TIFF image
V..... utvideo Ut Video
V..... v210 Uncompressed 4:2:2 10-bit
V..... v308 Uncompressed packed 4:4:4
V..... v408 Uncompressed packed QT 4:4:4:4
V..... v410 Uncompressed 4:4:4 10-bit
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
V..... xbm XBM (X BitMap) image
V..... xface X-face image
V..... xwd XWD (X Window Dump) image
V..... y41p Uncompressed YUV 4:1:1 12-bit
V..... yuv4 Uncompressed packed 4:2:0
V..... zlib LCL (LossLess Codec Library) ZLIB
A..X.. aac AAC (Advanced Audio Coding)
A..... libfaac libfaac AAC (Advanced Audio Coding) (codec aac)
A..... adpcm_adx SEGA CRI ADX ADPCM
A..... g722 G.722 ADPCM (codec adpcm_g722)
A..... g726 G.726 ADPCM (codec adpcm_g726)
A..... adpcm_ima_qt ADPCM IMA QuickTime
A..... adpcm_ima_wav ADPCM IMA WAV
A..... adpcm_ms ADPCM Microsoft
A..... adpcm_swf ADPCM Shockwave Flash
A..... adpcm_yamaha ADPCM Yamaha
A..... alac ALAC (Apple Lossless Audio Codec)
A..... libopencore_amrnb OpenCORE AMR-NB (Adaptive Multi-Rate Narrow-Band) (codec amr_nb)
A..... comfortnoise RFC 3389 comfort noise generator
A..... flac FLAC (Free Lossless Audio Codec)
A..... g723_1 G.723.1
A..... mp2 MP2 (MPEG audio layer 2)
A..... libmp3lame libmp3lame MP3 (MPEG audio layer 3) (codec mp3)
A..... nellymoser Nellymoser Asao
A..... pcm_alaw PCM A-law / G.711 A-law
A..... pcm_f32be PCM 32-bit floating point big-endian
A..... pcm_f32le PCM 32-bit floating point little-endian
A..... pcm_f64be PCM 64-bit floating point big-endian
A..... pcm_f64le PCM 64-bit floating point little-endian
A..... pcm_mulaw PCM mu-law / G.711 mu-law
A..... pcm_s16be PCM signed 16-bit big-endian
A..... pcm_s16be_planar PCM signed 16-bit big-endian planar
A..... pcm_s16le PCM signed 16-bit little-endian
A..... pcm_s16le_planar PCM signed 16-bit little-endian planar
A..... pcm_s24be PCM signed 24-bit big-endian
A..... pcm_s24daud PCM D-Cinema audio signed 24-bit
A..... pcm_s24le PCM signed 24-bit little-endian
A..... pcm_s24le_planar PCM signed 24-bit little-endian planar
A..... pcm_s32be PCM signed 32-bit big-endian
A..... pcm_s32le PCM signed 32-bit little-endian
A..... pcm_s32le_planar PCM signed 32-bit little-endian planar
A..... pcm_s8 PCM signed 8-bit
A..... pcm_s8_planar PCM signed 8-bit planar
A..... pcm_u16be PCM unsigned 16-bit big-endian
A..... pcm_u16le PCM unsigned 16-bit little-endian
A..... pcm_u24be PCM unsigned 24-bit big-endian
A..... pcm_u24le PCM unsigned 24-bit little-endian
A..... pcm_u32be PCM unsigned 32-bit big-endian
A..... pcm_u32le PCM unsigned 32-bit little-endian
A..... pcm_u8 PCM unsigned 8-bit
A..... real_144 RealAudio 1.0 (14.4K) (codec ra_144)
A..... roq_dpcm id RoQ DPCM
A..X.. s302m SMPTE 302M
A..X.. sonic Sonic
A..X.. sonicls Sonic lossless
A..... tta TTA (True Audio)
A..X.. vorbis Vorbis
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
S..... ass ASS (Advanced SubStation Alpha) subtitle
S..... dvbsub DVB subtitles (codec dvb_subtitle)
S..... dvdsub DVD subtitles (codec dvd_subtitle)
S..... mov_text 3GPP Timed Text subtitle
S..... srt SubRip subtitle with embedded timing
S..... ssa SSA (SubStation Alpha) subtitle
S..... subrip SubRip subtitle
S..... xsub DivX subtitles (XSUB)
 
Zuletzt bearbeitet:

starwhooper

Benutzer
Mitglied seit
07. Jul 2009
Beiträge
61
Punkte für Reaktionen
1
Punkte
12
Sieht auf meiner 1812+ deutlich anders aus.

Hi, das liegt daran das du ffmpeg -formats aufgerufen hast, um alle formate zu erhalten. Ich habe aber "nur" ffmpeg -encodes aufgerufen (und alle nicht Video Encoder aus der Liste entfernt), da mir nur die Formate wichtig waren, die ich für den output nehmen kann.
 
Zuletzt bearbeitet:

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
Hab mal meine Ausgabe von oben ersetzt. Sieht aber ähnlich aus wie bei dir.
Zumindest mpeg4 part-2 steht ja eigentlich auch bei dir auf der Liste.
 

starwhooper

Benutzer
Mitglied seit
07. Jul 2009
Beiträge
61
Punkte für Reaktionen
1
Punkte
12
Ich habe mir nun mal die Applikation Serviio installiert. Ich wollte eigentlich keine Veränderungen am System vornehmen, aber die beiden Pakete (Java und Serviio ansich) konnte ich gerade noch verschmerzen.

Nun klappt es mit dem konvertieren, jedoch muss in kommando auf das von Serviio mitgebrachte ffmpeg verwiesen werden. Zudem sollte eine bessere qualität gewählt werden als das Serviio wohl vorkonfiguriert hat.

Aus ffmpeg -y -i n3test.mpg -c:v mpeg4 -c:a copy n3test.mp4 muss also /volume1/@appstore/Serviio/bin/ffmpeg -y -i n3test.mpg -c:v mpeg4 -b:v 3000k -c:a copy n3test.mp4 werden.
 

adg82439

Benutzer
Mitglied seit
12. Apr 2014
Beiträge
54
Punkte für Reaktionen
0
Punkte
0
hallo starwhooper

kannst Du nun bequem konvertieren?

wie hast Du serviio zum laufen gebracht? Da scheitere ich leider.


ciao
 

starwhooper

Benutzer
Mitglied seit
07. Jul 2009
Beiträge
61
Punkte für Reaktionen
1
Punkte
12
Moin,

ja, das konvertieren klappt problemlos. Ich habe mir auch eine App für die Synology geschrieben, die mir dabei hilft. Technisch ist also alles kein Problem.

Allerdings gibt es aufgrund der Vielfalt an Codecs und der etwas beschränkten PS3 Unterstützung für Codecs das Problem eine passende und sinnvolle Konvertierung zu finden.
Ich kann also Container, Video oder Audio Codec wechseln. Es ist aber trotzdem unklar ob die PS3 es anschließend abspielen kann.

Natürlich kann ich für Container, Video und Audio ein festen Codec vorgeben. Dann dauert die Convertierung aber ggf. viel länger und die Dateigröße steigt sogar an...


Zum Serviio Server: Der lief problemlos bei mir, brachte mir aber keine erkennbaren Vorteile gegenüber dem schon verfügbaren Mediaserver von Synology. Daher ist der zwar noch zum konvertieren installiert, der Dienst selber ist aber deaktiviert.
 
Zuletzt bearbeitet:

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.216
Punkte für Reaktionen
69
Punkte
114
Hab gerade auch ein Full HD Video (Big Buck Bunny kennt ja jeder) in 480p konvertiert.
Hat einwandfrei mit dem Standard ffmpeg auf der syno funktioniert :)

Mein Script dafür:

Rich (BBCode):
#!/bin/sh

EXEC=/usr/syno/bin/ffmpeg
INPUT=/volume1/downloads
FTYPE=*.mkv
SUFFIX=.sd.mkv


cd $INPUT
# Transcode all files with the specified FTYPE
for FILE in $FTYPE
  # transcode video stream and audio streams and copy all subtitles
  do $EXEC -i "$FILE" -map 0 -c:v libx264 -preset slow -crf 20 -c:a libfaac -c:s copy -vf scale=720:406 "$FILE${SUFFIX}" 
done
 

starwhooper

Benutzer
Mitglied seit
07. Jul 2009
Beiträge
61
Punkte für Reaktionen
1
Punkte
12
Hi DKeppi,

kann es sein das du dein ffmpeg verändert hast ? Soweit ich mich entsinne, hatte ich probleme mit Mastrovka Container und dem orginal ffmpeg. Aus dem grund nehme ich ja das von Serviio.

Wie lange lief den die Konvertierung ? Und weisst du zufällig ob die PS3 mit dem Format zurecht kommt ?

Gruß, Thiemo
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.216
Punkte für Reaktionen
69
Punkte
114
Hi Thiemo,

nein, Standard ffmpeg der 5.1-5004!
Hast du auch die 5.1 drauf - welche Architektur hat deine Syno?

Konvertierung lief geschätzt ca. 5-10 min. -> aus 500MB wurden ca. 90MB (Video dauert ja nur 9,5 min.)
DS415+ wurde dabei fast voll ausgelastet - CPU bei 85-95%

Zur PS3 kann ich leider nichts sagen, sorry! :(
 

Gizmo712

Benutzer
Mitglied seit
30. Aug 2010
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Hallo und vielen Dank für das Script! Das ist genau was ich suche. Ich hoffe es klappt auch mit der DS214Play.

Ich bin leider nicht der Script-König und würde gerne ein Post-Script für TVHeadend mit folgendem Ablauf schreiben =>

  1. Prüfen ob die Aufnahme mpeg2 (also SD) vorliegt oder ob diese h264 (HD) aufgenommen wurde
  2. Die Dateien in h264 mp4 wandeln entsprechend dem Material (SD oder HD)
    Erklärung: Ich möchte die Auflösung der Aufnahme beibehalten, ebenso wie die aufgenommenen Audio-Streams. Mir geht es primär um die Umwandlung durch die Hardware(DS214Play) in den Videocodec H264 und der komprimierung bei akzeptabler Qualität.
  3. Alte Aufnahme löschen und konvertierte Aufnahme verschieben in den indizierten Video-Ordner


Frage 1:
Mangels Erfahrung mit ffmpeg, fehlt mir leider das Wissen welche Parameter ffmpeg für meinen Anwendungsfall haben möchte.
Aus dem Bauch heraus würde ich vermuten es muss nur der Videocodec angegeben werden und die maximale Bitrate.
Liege ich dabei richtig?

Frage 2:
Löschen und verschieben kann ich mit mv und rm realisieren?

Frage 3:
Wie kann ich zwischen SD und HD unterscheiden, oder ist dies nicht notwendig wenn die Auflösung gleich bleiben soll?

Frage 4:
Kann es beim Transcoding zu Bild-Ton Verschiebungen kommen? (Es wäre ägerlich wenn Aufnahmen dadurch unbrauchbar werden).

Vielen Dank für evtl. Antworten.
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.216
Punkte für Reaktionen
69
Punkte
114
Habe das Script noch etwas an meine Bedürfnisse angepasst :)
So gefällts mir auch besser...

Die Option fürs entfernen vom Originalfile lasse ich deaktiviert, sonst einfach das # davor entfernen!!!

Rich (BBCode):
#!/bin/sh

EXEC=/usr/syno/bin/ffmpeg
INPUT=/volume1/downloads
FTYPE=*.mkv
SUFFIX=.sd.mkv


VCODEC=libx264
ACODEC=libfaac
RES=720:406 #Werte müssen durch 2 teilbar sein


cd $INPUT
# Transcode all files with the specified FTYPE
for FILE in $FTYPE
  # transcode video stream and copy all audio streams and all subtitles
  do $EXEC -i "$FILE" -map 0 -c:v $VCODEC -preset slow -crf 20 -c:a $ACODEC -c:s copy -vf scale=$RES "$FILE${SUFFIX}"
  # Remove source file
  #rm "$FILE"
done

@Gizmo712

Bin ich selbst etwas überfragt wie du die Qualität prüfst - bin auch kein Scriptkönig ;)
Hier das was ich beantworten kann...

1.)
Videocodecoption aus meinem Script sollte dann passen!
Audiocodec gleich lassen - wäre das Command -c:a copy
SUFFIX in .mp4 ändern müsste reichen

2.) Ja, mit mv und rm sollte das klappen
#rm "$FILE" im Script entfernt das Ausgangsvideo wenn du das # entfernst

3.) Wenn du die Auflösung gleich lässt sollte das egal sein!

4.) Ist bei mir nicht passiert, wenn das Ausgangsvideo syncron ist!

Hoffe ich konnte ein wenig helfen...hier gibts andere Profis die das besser beherrschen mit den Scripts als ich!
 

Gizmo712

Benutzer
Mitglied seit
30. Aug 2010
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
@DKeppi: Schönes Script und Danke für die Antworten. Ich werde es zur Verwendung mit TVHeadend ein wenig anpassen und mein Ergebnis später hier posten.

Ich habe direkt in der shell mit ffmpeg experimentiert.
Für eine Aufnahmen von Arte (mpeg2) hat ffmpeg mit der Angabe des Codec (-vcodec libx264) nur ~25fps bearbeiten können. Die CPU Last lag dabei bei 98%.
Wenn ich den Parameter -vcodec libx264 durch die Angabe -prefer_smd geändert habe hatte ich eine Geschwindigkeit von ~310fps :) und die CPU Last lag bei 30%.
Leider funktionierte das Mapping der deutschen Tonspur nicht. Mit der Angabe -map 0:a:language:ger wollte ich immer nur die deutsche Tonspur übernehmen.
Ist die Syntax falsch? - ansonsten kopiere ich halt alle Audio Streams.

@starwhooper: Ich habe keine Probleme gehabt mit dem Standard ffmpeg. Ich habe allerdings auch noch ein Package "ffmpeg mit DTS" installiert.

Wo finde ich die presets vom Synology ffmpeg? Evtl. ist ja dort ein preset welches einen guten Kompromiss aus Qualität und Kompression bietet.
 
Zuletzt bearbeitet:

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.216
Punkte für Reaktionen
69
Punkte
114
Gern geschehen, helfe wo ich kann!

Was bedeutet -prefer_smd eigentlich? Finde dazu nichts....aber wenn es etwas bringt und dadurch schneller geht :)

Sofern man weiß das der deutsche Stream immer der erste ist sollte es mit -c:a:0 plus Angabe des Codecs klappen!

Die Syntax von ffmpeg ist echt umfangreich - finde da keine gute Übersichtsseite die mich nicht überfordert ;)
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.216
Punkte für Reaktionen
69
Punkte
114

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.526
Punkte für Reaktionen
1.363
Punkte
234

  1. Prüfen ob die Aufnahme mpeg2 (also SD) vorliegt oder ob diese h264 (HD) aufgenommen wurde
  2. Die Dateien in h264 mp4 wandeln entsprechend dem Material (SD oder HD)
    Erklärung: Ich möchte die Auflösung der Aufnahme beibehalten, ebenso wie die aufgenommenen Audio-Streams. Mir geht es primär um die Umwandlung durch die Hardware(DS214Play) in den Videocodec H264 und der komprimierung bei akzeptabler Qualität.

ffmpeg gibt ja detailierte Fileinformationen aus.
Diese nutze ich erfolgreich auf nachstehende Weise. Es gibt sicherlich noch Optimierungsmöglichkeiten. Eine mögliche Alternative währe evtl. noch MediaInfo.

Rich (BBCode):
for i in $(find "/volume1/DeinVideoOrdner/" -name "*.avi" -type f)	# hier wird nur nach AVI-Dateien gesucht ==> anpassen

	do

# -------INFO_AUSLESEN:

		fileinfo=$(ffmpeg -i "$i" 2>&1)	
		
# -------AUDIOCODEC:	!  !  !  funktioniert wie nachstehend nur bei 3stelligen Codecs - also anpassen ! ! !	

		audiotypepos=`echo $fileinfo | awk '{ print index($0, "Audio: ") }'` 			
		let audiotypepos=$audiotypepos+7												
		let audiotypeposend=$audiotypepos+2												
		audiocodec=`echo $fileinfo | cut -c $audiotypepos-$audiotypeposend `	
				
		echo Audiocodec: $audiocodec

# -------VIDEOCODEC:	ich möchte in meinem Fall zwischen DivX und h264 unterscheiden - also anpassen	
							
		if [ $(echo $fileinfo | grep "mpeg4") ] ; then
				videocodec="divx"; 
			elif [ $(echo $fileinfo | grep "h264") ] ; then
				videocodec="h264"
			else 
				videocodec="unknown"
				echo "Videoformat nicht erkannt. ==> springe zu nächster Datei:"
				continue ; 
		fi

		echo Videocodec: $videocodec

# -------FRAMERATE:		unterscheidet zwischen 25 und 50 fps - wird die Rate nicht erkannt, wird 25 angenommen

		if [ $(echo $fileinfo | grep "50 fps") ] ; then
				fps="50"; 
			elif [ $(echo $fileinfo | grep "25 fps") ] ; then
				fps="25"
			else 
				fps="25"
		fi
		
		echo fps: $fps

# -------gewünschte Operation durchführen:

		if [ $audiocodec != "aac" ] ; then			# !=  entspricht hier ungleich 
			ffmpeg …………
		fi
done
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat