Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: H264 codec via ffmpeg naar mp4  (gelezen 1346 keer)

Offline jvecht

  • Lid
    • Just Vecht
H264 codec via ffmpeg naar mp4
« Gepost op: 2021/06/05, 12:38:22 »
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:
ffmpeg -i "source.h264" -c:v copy -f mp4 "myOutputFile.mp4"
In de praktijk ziet dat er zo uit:

ffmpeg -i 0002.MTS -c:v copy -f mp4 0002.mp4

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

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
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
GIMP bundel 2018  38 cursussen met mooi oefenmateriaal. Lekker lezen of er wat van opsteken!
  Boekje "Werken met Xubuntu" 5000+ downloads!
     Het Helpmij Magazine Mei 2021

Offline Bloom

  • Lid
Re: H264 codec via ffmpeg naar mp4
« Reactie #1 Gepost op: 2021/06/05, 12:58:46 »
Haal die IFS=... vooraan weg en zet eens tussen do en avconv een echo zodat je kunt zien wat er precies tot stand komt.

Offline vanadium

  • Lid
Re: H264 codec via ffmpeg naar mp4
« Reactie #2 Gepost op: 2021/06/05, 14:17:27 »
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.
« Laatst bewerkt op: 2021/06/05, 14:18:58 door vanadium »

Re: H264 codec via ffmpeg naar mp4
« Reactie #3 Gepost op: 2021/06/05, 14:21:19 »
Ik doe ook een reeks bestanden (uit een map) omzetten met een vergelijkend commando en dat ziet er zo uit:
for i in *.MP4; do ffmpeg -i "$i" -acodec pcm_s24le -vcodec copy "${i%.MP4}.MOV"; doneAls 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/
Allemaal Linux gerelateerde links op mijn website http://home.scarlet.be/jefdamen/Ubuntu.html
Mijn YouTube kanaal:http://www.youtube.com/user/asilnevs
https://jefdamen.wordpress.com/
We are spiritual beings having a human experience

Offline jvecht

  • Lid
    • Just Vecht
Re: H264 codec via ffmpeg naar mp4
« Reactie #4 Gepost op: 2021/06/05, 22:19:10 »
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
GIMP bundel 2018  38 cursussen met mooi oefenmateriaal. Lekker lezen of er wat van opsteken!
  Boekje "Werken met Xubuntu" 5000+ downloads!
     Het Helpmij Magazine Mei 2021

Offline jvecht

  • Lid
    • Just Vecht
Re: H264 codec via ffmpeg naar mp4
« Reactie #5 Gepost op: 2021/06/05, 22:47:58 »
Is wellicht zenity een oplossing in dit geval? De MTS clips worden gewoon oplopend genummerd en de output als mp4 bestanden mogen gelijk genummerd worden.

Is dat een idee dan? Dan maak ik een passend script in combinatie met zenity.

groet,

Just
GIMP bundel 2018  38 cursussen met mooi oefenmateriaal. Lekker lezen of er wat van opsteken!
  Boekje "Werken met Xubuntu" 5000+ downloads!
     Het Helpmij Magazine Mei 2021

Offline vanadium

  • Lid
Re: H264 codec via ffmpeg naar mp4
« Reactie #6 Gepost op: 2021/06/06, 09:23:30 »
Dat eerste commando
ffmpeg -i 0002.MTS -c:v copy -f mp4 0002.mp4
moet toch zo in een do loop te zetten zijn?

for f in *.MTS ;  do ffmpeg -i "$f" -c:v copy -f mp4 "${f%.MTS}.mp4" ; done

Natuurlijk dien je dit uit te voeren in de folder waar de MTS bestanden aanwezig zijn. Zenity lijkt mij hier enkel geschikt om het minder automatisch te maken. "-f mp4" hoeft er zelfs niet bij: wegens de opgegeven extensie zal ffmpeg automatisch dat containerformaat kiezen als je het niet zelf aangeeft.

Offline jvecht

  • Lid
    • Just Vecht
Re: H264 codec via ffmpeg naar mp4
« Reactie #7 Gepost op: 2021/06/06, 10:44:00 »
Hoi Vanadium,

Ja geweldig. Dat was wat ik in gedachten had. En het loopt ook nog eens mooi snel. Dat zal wel niet aan die for loop liggen, maar aan de opdracht op zich.

Zou er ook nog een mogelijkheid zijn om ergens de optie -r 25 er in te zetten om op 25 fps uit te komen (zoals bij die tweede opdracht)? Dat vooral om de computer nog wat te sparen bij het renderen? Ik heb de -r 25 geprobeerd hier en daar er in te zetten, maar dat is te simpel gedacht

Leuk al zo, schitterend!

groet,

Just
GIMP bundel 2018  38 cursussen met mooi oefenmateriaal. Lekker lezen of er wat van opsteken!
  Boekje "Werken met Xubuntu" 5000+ downloads!
     Het Helpmij Magazine Mei 2021

Offline vanadium

  • Lid
Re: H264 codec via ffmpeg naar mp4
« Reactie #8 Gepost op: 2021/06/06, 11:51:45 »
Framerate omzetten is niet zo eenvoudig, en vereist transcoderen. De omzetting zal (veel) langer duren. Je computer veel "sparen" tijdens het afspelen zal je niet doen door de fps te verlagen.

Dat moet dan onder meer zo kunnen:
ffmpeg -i 0002.MTS -c:v h264 -r 25  -f mp4 0002.mp4

Offline jvecht

  • Lid
    • Just Vecht
Re: H264 codec via ffmpeg naar mp4
« Reactie #9 Gepost op: 2021/06/06, 12:31:44 »
Hoi Vanadium,

Dat werkt ook perfect zo. Super. Ik heb de for loop die je meer eerder al gaf overeenkomstig aangepast en nu heb ik het zo als ik het graag wilde hebben. Dat de hele omzetting zo wat langer duurt is me helder. Toch valt de duur van de hele klus van de for loop over 26 vrij korte videoclips me nog erg mee.

Hartelijk dank Vanadium et al! Ik ga de boel opslaan in mijn verzameling opdrachten voor ffmpeg voor later gebruik. Ben er heel blij mee.

groet,

Just
GIMP bundel 2018  38 cursussen met mooi oefenmateriaal. Lekker lezen of er wat van opsteken!
  Boekje "Werken met Xubuntu" 5000+ downloads!
     Het Helpmij Magazine Mei 2021