FFmpeg: lit directement un lien d'entrée dans un fichier texte (sans outils ni tuyaux supplémentaires)

0

Il y a le fichier texte - link.txt. Ce fichier contient le lien suivant vers la vidéo:

$ cat link.txt
https://www.quirksmode.org/html5/videos/big_buck_bunny.mp4

Je peux transcoder la vidéo de ce fichier de la manière suivante:

ffmpeg -i $(cat link.txt) -vcodec libx264 -acodec libfdk_aac out.mpg

ou je peux utiliser pipe pour atteindre le même résultat:

cat link.txt | ffmpeg -i - -vcodec libx264 -acodec libfdk_aac out.mpg

Mais je dois exécuter FFmpeg via un logiciel spécifique et il ne supporte pas les pipes et les commandes ci-dessus.

Je cherche une solution pour exécuter FFmpeg comme ceci:

ffmpeg -some-extra-parameters -to-say-ffmpeg -get-the-link \
       -from-the-text-file -i link.txt -vcodec libx264 \
       -acodec libfdk_aac out.mpg

Question 1: Cette fonctionnalité est-elle implémentée dans FFmpeg?

En outre, j'ai vérifié les préréglages FFmpeg et créé le fichier FFPRESET pour mon objectif:

$ cat /usr/local/share/ffmpeg/linkpreset.ffpreset
i=https://www.quirksmode.org/html5/videos/big_buck_bunny.mp4
vcodec=libx264
acodec=libfdk_aac

J'ai eu l'erreur quand j'ai essayé d'exécuter FFmpeg avec ce préréglage:

$ ffmpeg -fpre /usr/local/share/ffmpeg/linkpreset.ffpreset out.mpg

/usr/local/share/ffmpeg/linkpreset.ffpreset: Invalid option or argument: 
'i=https://www.quirksmode.org/html5/videos/big_buck_bunny.mp4', 
parsed as 'i' = 'https://www.quirksmode.org/html5/videos/big_buck_bunny.mp4'

Question 2: Existe - t-il un moyen de spécifier un lien d'entrée dans un fichier FFPRESET?
Question 3 (principale): Comment lire un lien d'entrée à partir d'un fichier texte directement dans FFmpeg (sans outils ni tuyaux supplémentaires)?

Ivan Kolesnikov
la source
Contrôlez-vous le fichier texte?
Gyan
@Gyan Oui, je contrôle le fichier texte
Ivan Kolesnikov Le

Réponses:

1

Il n'y a pas de méthode directe pour ce faire, mais une solution consiste à utiliser le démultiplexeur concat avec une seule entrée.

Créer un fichier texte contenant

file 'https://www.quirksmode.org/html5/videos/big_buck_bunny.mp4'

puis courir

ffmpeg -f concat -safe 0 -protocol_whitelist file,https,tcp,tls,crypto -i link.txt ...
Gyan
la source