Ser du frem til Baldur's Gate-remaket?
25. okt. 2011 19:22
Hej,
Da jeg bruger Windows Home Server 2011 og gerne vil streame video gennem Remote Access, så har jeg nogle film jeg bliver nød til at konvertere til en anden container da den ikke vil genkende Matroska-containeren (*.mkv). Nu bruger jeg ffmpeg til at konvertere Matroska-containeren til en MPEG4-container (*.mp4).
Processen går fint ved brug af kommandolinje og argumenterne der ser sådan ud.
ffmpeg.exe -y -i "fil.mkv" -vcodec copy -acodec copy "fil.mp4"
Mit problem er bare at når den er blevet konverteret på min server, så finder Windows Home Server 2011 den ikke så den kan afspilles via Remote Access og Silverlight. Når filen er konverteret på alle andre computere end min server, så vil Windows Home Server 2011 gerne finde den så den kan afspilles i Remote Access.
Jeg er komplet uforstående for dette! Nogen der har en ide om hvad der kan være galt? Ville gerne have det til at virke for at have et script kørende rekursivt på min film mappe og konvertere alle *.mkv til *.mp4.
TL;DR - ved brug af ffmpeg, hvorfor kan WHS11 kun finde *.mp4 filer lavet på andre maskiner end serveren selv?
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 19:27
Dumt spg.:
Har programmet de rette skriverettigheder på serveren?
You are in control of your breathing, your arms have weight, you are controlling your blinking, and you can feel your tongue in your mouth.
25. okt. 2011 19:30
Programmet har fulde rettigheder til at skrive. Den skriver også filerne, filerne kan også spilles i WMP på serveren, de vises bare ikke i Remote Access, sært synes jeg. Det virker når filerne er lavet på andre computere.
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 20:04
Er det præcist samme version af ffmpeg du bruger på de forskellige maskiner?
Gider du lige sætte navn på bagsiden af mit Möbius pandebånd?
25. okt. 2011 20:36
Jeg har downloaded exe-filen på en computer of kopieret den til de andre, så ja, det er den samme version.
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 21:06
Hvor store er filerne? Problematisk store? (Over 2 gb? Over 4 gb?)
Prøv evt. med noget under 1 gb, hvis du ikke har prøvet det.
Gider du lige sætte navn på bagsiden af mit Möbius pandebånd?
25. okt. 2011 21:09
Pt. har jeg 6 filer, fra 800 MB til 5 GB, det sker med alle filerne.
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 21:27
Hmm... Prøv lige at sammenligne resultatet fra en fungerende konvertering og en ikke-fungerende. Er de helt ens? Sammenlign fx. MD5sum.
Gider du lige sætte navn på bagsiden af mit Möbius pandebånd?
25. okt. 2011 21:31
Det var det samme jeg lige tænkte på at gøre og nu bliver jeg først forvirret.
FE48461FF447F960FBAA291F1F7C9720
C:\Users\Administrator\Desktop\Converted on others\Bee Movie [2007].mp4
FE48461FF447F960FBAA291F1F7C9720
F:\ServerFolders\Videos\Bee Movie [2007].mp4
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 21:48
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 21:52
#9
Aha! Så fungerer ffmpeg som det skal. Problemet er nok at de nyere Windowsere (dvs. nyere end hvad jeg har forstand på) har et underligt forhold til fil-rettigheder.
Det har jeg ingen forstand på, men nu ved du da hvilken slags ekspert du leder efter.
Gider du lige sætte navn på bagsiden af mit Möbius pandebånd?
25. okt. 2011 21:59
Du skal nu have tak alligevel, Windows Home Server 2011 er en version af Windows Server 2008 R2 og arbejder derfor med samme system som Windows 7.
DD havde faktisk fat i noget kan jeg se og takket være myplacedk har jeg nu fået lusket mig ind på fejlen.
Grunden er at Windows Home Server 2011 bruger en anden bruger 'WMPNetworkSvc' til streaming og den bruger har læse rettingheder på de filer jeg laver på en anden maskine og så overfører. Hvis jeg laver filen på serveren, så er stream-brugeren ikke nævnt i rettighedslisten.
Takker til alle og den burde jeg sku' nok have set. Kan nu erklære mig selv en tumpe af højeste grad!
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 22:42
Som en lille extra, så kan jeg sige at jeg har fixet det ved at skrive det følgende i kommandoprompt.
ICACLS <fil> /inheritance:e
Så arver filen rettinghederne fra den overordnede mappe, i hvert fald hvis jeg har forstået det rigtigt. Det ser også ud til at virke.
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
25. okt. 2011 22:52
#13 Du kan tage tumpehatten af for at være så flink, at runde din post af med løsningen af hensyn til folk som Googler sig herind i fremtiden.
Der findes ikke dumme spørgsmål, kun dumme svar :)
26. okt. 2011 13:15
Kan da også lige poste tingene jeg bruger til automatisk konvertering, jeg fandt også ud af at den ikke ville afspille filmene når de var med audio codec AC3, så det skal også konverteres til AAC.
Det er skrevet i AutoIt3
Nødvendige filer
ffmpeg.exe
MediaInfo.exe (CLI version)
MediaInfo.dll
settings.inisettings.ini
[Settings]
Videos=X:\ServerFolders\Videos
Temp=X:\temp
Time=00:15:00
Priority=2Concra.au3
#include <File.au3>
#include <Array.au3>
#include <Constants.au3>
Local Const $SECOND_IN_MILL = 1000
Local Const $HOUR_TO_MINUTES = 60
Local Const $MINUTE_TO_SECONDS = 60
$searchDir = IniRead("settings.ini", "Settings", "Videos", "")
$tempDir = IniRead("settings.ini", "Settings", "Temp", "")
$timeSetting = IniRead("settings.ini", "Settings", "Time", "")
$prioritySetting = IniRead("settings.ini", "Settings", "Priority", 0)
$loopTime = _TimeSettingToSeconds($timeSetting)
While 1
_CrawlFolder($searchDir, $tempDir)
Sleep($loopTime * $SECOND_IN_MILL)
WEnd
Func _CrawlFolder($searchDir, $tempDir)
$folderList = _FileListToArray($searchDir, "*", 2)
If IsArray($folderList) Then
For $i = 1 to $folderList[0]
$folder = $searchDir&"\"&$folderList[$i]
_CrawlFolder($folder, $tempDir)
Next
EndIf
$fileList = _FileListToArray($searchDir, "*.mkv", 1)
If IsArray($fileList) Then
For $i = 1 to $fileList[0]
$tempFile = $tempDir&"\"&StringTrimRight($fileList[$i], 3) & "mp4"
$newFile = $searchDir&"\"&StringTrimRight($fileList[$i], 3) & "mp4"
$file = $searchDir&"\"&$fileList[$i]
If Not FileExists($newFile) Then
DirCreate($tempDir)
$audioProcess = Run('MediaInfo "'&$file&'" --Inform=Audio;%Format%', @ScriptDir, @SW_SHOW, $STDOUT_CHILD)
While 1
$audioCodec = StdoutRead($audioProcess)
If $audioCodec Then ExitLoop
Wend
If $audioCodec = "AAC" Then
$useAudioCodec = 'copy'
Else
$useAudioCodec = 'libvo_aacenc -ac 2'
EndIf
$processId = Run('ffmpeg.exe -y -i "' & $file & '" -vcodec copy -acodec '&$useAudioCodec&' "' & $tempFile & '"')
ProcessSetPriority($processId, 0)
While ProcessExists($processId)
Sleep(100)
WEnd
FileMove($tempFile, $newFile)
Run('ICACLS "'&$newFile&'" /inheritance:e')
DirRemove($tempDir)
EndIf
Next
EndIf
EndFunc
Func _TimeSettingToSeconds($time)
$hours = StringLeft($time, 2) * $HOUR_TO_MINUTES * $MINUTE_TO_SECONDS
$minutes = StringMid($time, 4, 2) * $MINUTE_TO_SECONDS
$seconds = StringRight($time, 2)
return $hours + $minutes + $seconds
EndFunc
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
26. okt. 2011 16:30
#include <File.au3>
#include <Array.au3>
#include <Constants.au3>Bruger det sprog en C preprocessor?
<p>Ein Plakat der APG passt immer</p>
26. okt. 2011 18:09
Tror faktisk det er en C++ interpreter der bruges.
AMD Zacate E-350 @ 1.6 GHz, 2x 2 GB PC3-8500, AMD Radeon HD 6310, 320 GB 5400 RPM, 11.6" - Sony VAIO VPCYB1S1E/S
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.