Ondersteuning > Foto-, video- en audiobewerking

H264 codec via ffmpeg naar mp4

(1/2) > >>

jvecht:
Ik heb een leuke HC-V700 Panasonic camera met AVCD. In Linux. Dat levert me prima MTS clips op. Om mijn computer te sparen zet ik die met ffmpeg om naar mp4 bestanden met 25 fps.

Dat gaat puik, maar in sommige gevallen heb ik de H264 codec nog echt nodig. Naar het nodige zoekwerk blijkt dat goed te doen en nog snel ook met deze opdracht:

--- Code: ---ffmpeg -i "source.h264" -c:v copy -f mp4 "myOutputFile.mp4"
--- Einde van code ---

In de praktijk ziet dat er zo uit:

--- Code: ---
ffmpeg -i 0002.MTS -c:v copy -f mp4 0002.mp4
--- Einde van code ---

Maar ik krijg het niet voor elkaar hier een for loop van te maken zoals bij voorbeeld deze


--- Code: ---IFS=$(echo -en "\n\b"); for i in *.MTS; do avconv -i "$i" -vcodec mpeg4 -b:v 15M -r 25 -acodec libmp3lame -b:a 192k "${i%.MTS}-25.mp4"; done
--- Einde van code ---

Daarmee ben ik dan in één klaar al duurt dat dan wel even. Maar met de optie -r 25 heb ik dan ook 25 fps gedaan.

Iemand hier met een idee? Ik gebruik Xubuntu 20.04 LTS en een Lenovo Thinkpad met een i5 en 8 GB RAM.

Just

Bloom:
Haal die IFS=... vooraan weg en zet eens tussen do en avconv een echo zodat je kunt zien wat er precies tot stand komt.

vanadium:
Het commando dat je in je loop steekt, is niet hetzelfde als dat wat wel voor je werkt. Als dat geen vergissing is, test dan eerst het nieuwe commando afzonderlijk vooraleer het in een do loop te stoppen. Op zich lijkt die do-loop OK, maar ook ik zie niet waarom je die IFS nodig zou hebben. Daarnaast zou een beetje terminaluitvoer met de foutmeldingen heel wat kunnen helpen het probleem te duiden.

asilnevs:
Ik doe ook een reeks bestanden (uit een map) omzetten met een vergelijkend commando en dat ziet er zo uit:

--- Code: ---for i in *.MP4; do ffmpeg -i "$i" -acodec pcm_s24le -vcodec copy "${i%.MP4}.MOV"; done
--- Einde van code ---
Als je jou commando werkende hebt gekregen dan kun je ook eens proberen om een script hiervan te maken dat je gemakkelijk vanuit Nautilus kunt opstarten.
Dan moet je niet telkens het commando ergens gaan opzoeken en via de terminal ingeven maar staat het gewoon onder Nautilus.
Je kunt je best hier dan eens inlezen: https://linuxmag.nl/workshop/

jvecht:
Het eerste commando zet de H264 codec over naar de mp4  container zoals ik het begrijp. Maar zodra ik probeer er een for loop van te maken volgt de foutmelding dat de output geen stream bevat,

De IFS statement is deel van de for loop bij het tweede commando. Dat draait prima verder prima, maar dan zit de H264 codec niet in de omgezette video's.

Dit is allemaal terminal werk en de output zijn erg grote lappen tekst.

Over het idee om het eerste commando in een script te zetten moet ik nog eens piekeren.  Het probleem is dat ffmpeg met de optie -i input verwacht, die per clip anders zal zijn. Dat had ik dan via een for loop hopen op te lossen, maar helaas. Wat dat betreft is het juist om op te merken dat beide commando's heel anders zijn. De IFS statement weghalen breekt de for loop en levert rommel op.

Dat script zou wellicht werken zijn als ik de oplopende nummering van de MTS clips telkens zou kunnen aanpassen (telkens eentje hoger)

Ik puzzel door ... Bedankt voor de feedback en de tips.

Voor geval iemand de werking van de beide commando's eens verder bekijken is hier de link naar een set van drie MTS clips: https://we.tl/t-JMJnoMVXtZ

Bekijk daarna de aanwezigheid van de H264 codec met VLC - Extra - Codecinformatie.

groet,

Just

Just

Navigatie

[0] Berichtenindex

[#] Volgende pagina

Naar de volledige versie