Recherche avancée
Autres articles (65)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (8988)
-
Python-ffmpeg video metadata editing script - Error splitting the argument list : Option not found
16 janvier, par maric193I have been updating a simple script that allows me to mass edit video files metadata (in a specific folder) and save them with a new filename (inside the same folder). I have been bouncing around different forums and decided to try python-ffmpeg.
For some reason right now I am getting the below FFmpegInvalidCommand exception


Error splitting the argument list: Option not found

I am not quite sure what I am doing wrong here, so I am wondering if someone can give me a fresh set of eyes to determine what the problem is. Apologies in advance, there may be some leftover code that I have not cut out yet. Thanks in advance !


import os
import re
import sys
from pathlib import Path
from ffmpeg import FFmpeg, FFmpegFileNotFound, FFmpegInvalidCommand
#Project looks through a folder, checks all the files in there, then edits metadata (and filename)
#and returns a new file for each file inside the folder

video = 'Anime' #Movie/TVSeries/Anime/etc...
name = 'Sword Art Online (2012)'
extension = '.mkv'
season = '01'
episode = 1

try:
 folder = r'D:\ServerTransfer\Update Server\%s\%s\S%s\\' % (video, name, season)

 #Check current file names
 print('Current names are: ')
 res = os.listdir(folder)
 print(res)
 
 # episode increase by 1 in each iteration
 # iterate all files from a directory
 for file_name in os.listdir(folder):
 # Construct old file name
 source = folder + file_name
 try:
 title = ''
 if episode < 100:
 # Adding the season & episode #'s
 destination = folder + name + '.S' + season + 'E0' + str(episode) + extension
 title = name + '.S' + season + 'E0' + str(episode)
## elif episode < 100:
## # Adding the season & episode #'s
## destination = folder + name + '.S' + season + '.E0' + str(episode) + extension
 else:
 # Adding the season & episode #'s
 destination = folder + name + '.S' + season + 'E' + str(episode) + extension
 title = name + '.S' + season + 'E' + str(episode)
 # Renaming the file
 if file_name.endswith(extension):
 ffmpeg = FFmpeg(executable=r'c:\FFmpeg\bin\ffmpeg.exe').option("y").input(source).output(destination,codec="copy",title=title)
 ffmpeg.execute()
 except FFmpegFileNotFound as exception:
 print("An FFmpegFileNotFound exception has been occurred!")
 print("- Message from ffmpeg:", exception.message)
 print("- Arguments to execute ffmpeg:", exception.arguments)
 except FFmpegInvalidCommand as exception:
 print("An FFmpegInvalidCommand exception has been occurred!")
 print("- Message from ffmpeg:", exception.message)
 print("- Arguments to execute ffmpeg:", exception.arguments)
 except Exception as err:
 print(f'Unexptected {err=}, {type(err)=}')
 raise
 episode += 1
 print('All Files Renamed')
 print('New Names are')
 # verify the result
 res = os.listdir(folder)
 print(res)
except OSError as err:
 print('OS error:', err)
except Exception as err:
 print(f'Unexptected {err=}, {type(err)=}')
 raise


Here is what one of my print statements in the exception says is being executed


- Arguments to execute ffmpeg: ['c:\\FFmpeg\\bin\\ffmpeg.exe', '-y', '-i', 'D:\\ServerTransfer\\Update Server\\Anime\\Sword Art Online (2012)\\S01\\\\[Kosaka] Sword Art Online - 01 - The World of Swords (1080p AV1 10Bit BluRay OPUS) [73066623].mkv', '-codec', 'copy', '-title', 'Sword Art Online (2012).S01E01', 'D:\\ServerTransfer\\Update Server\\Anime\\Sword Art Online (2012)\\S01\\\\Sword Art Online (2012).S01E01.mkv']


I have tried different variations of trying to run ffmpeg via python including using subprocess and shlex libraries. I also tried moviepy, however no one has answered me back on their page.


-
Converting `webm` to `mov` format using ffmpeg loses transparency - how can I keep it ?
10 mars 2023, par M.A ShahbaziI am trying to convert a
webmvideo tomovformat without losing quality and transparency using the following command :

ffmpeg -c:v libvpx-vp9 -i input.webm ouput.mov


The video gets converted, but it loses transparency and the background of video is black.


I also tried the following command :


ffmpeg -c:v png -i input.webm output.mov


But it gives me the following error output :


libavutil 58. 3.100 / 58. 3.100
 libavcodec 60. 4.100 / 60. 4.100
 libavformat 60. 4.100 / 60. 4.100
 libavdevice 60. 2.100 / 60. 2.100
 libavfilter 9. 4.100 / 9. 4.100
 libswscale 7. 2.100 / 7. 2.100
 libswresample 4. 11.100 / 4. 11.100
 libpostproc 57. 2.100 / 57. 2.100
[png @ 0000028041ca7000] Invalid PNG signature 0x824983420031F031.
[matroska,webm @ 0000028041c91240] Could not find codec parameters for stream 0 (Video: png, none(pc, progressive), 800x800): unspecified pixel format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, matroska,webm, from 'hero.webm':
 Metadata:
 COMPATIBLE_BRANDS: qt
 creation_time : 2023-02-23T10:43:46.703800Z
 MAJOR_BRAND : qt
 MINOR_VERSION : 537199360
 ENCODER : Lavf59.35.100
 Duration: 00:00:09.00, start: 0.000000, bitrate: 1378 kb/s
 Stream #0:0: Video: png, none(pc, progressive), 800x800, SAR 1:1 DAR 1:1, 24 fps, 24 tbr, 1k tbn
 Metadata:
 alpha_mode : 1
 ENCODER : Lavc59.56.100 libvpx-vp9
 DURATION : 00:00:09.000000000
Stream mapping:
 Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[png @ 0000028041ca7680] Invalid PNG signature 0x824983420031F031.
Error while decoding stream #0:0: Invalid data found when processing input
Cannot determine format of input stream 0:0 after EOF
Error marking filters as finished
Conversion failed!


How can I maintain transparency when converting from
webmtomovformat ?

Here's the video info in case it can be helpful :


{
 "streams": [
 {
 "index": 0,
 "codec_name": "vp9",
 "codec_long_name": "Google VP9",
 "profile": "Profile 0",
 "codec_type": "video",
 "codec_tag_string": "[0][0][0][0]",
 "codec_tag": "0x0000",
 "width": 800,
 "height": 800,
 "coded_width": 800,
 "coded_height": 800,
 "closed_captions": 0,
 "film_grain": 0,
 "has_b_frames": 0,
 "sample_aspect_ratio": "1:1",
 "display_aspect_ratio": "1:1",
 "pix_fmt": "yuv420p",
 "level": -99,
 "color_range": "tv",
 "field_order": "progressive",
 "refs": 1,
 "r_frame_rate": "24/1",
 "avg_frame_rate": "24/1",
 "time_base": "1/1000",
 "start_pts": 0,
 "start_time": "0.000000",
 "disposition": {
 "default": 0,
 "dub": 0,
 "original": 0,
 "comment": 0,
 "lyrics": 0,
 "karaoke": 0,
 "forced": 0,
 "hearing_impaired": 0,
 "visual_impaired": 0,
 "clean_effects": 0,
 "attached_pic": 0,
 "timed_thumbnails": 0,
 "captions": 0,
 "descriptions": 0,
 "metadata": 0,
 "dependent": 0,
 "still_image": 0
 },
 "tags": {
 "alpha_mode": "1",
 "ENCODER": "Lavc59.56.100 libvpx-vp9",
 "DURATION": "00:00:09.000000000"
 }
 }
 ],
 "format": {
 "filename": ".\\hero.webm",
 "nb_streams": 1,
 "nb_programs": 0,
 "format_name": "matroska,webm",
 "format_long_name": "Matroska / WebM",
 "start_time": "0.000000",
 "duration": "9.000000",
 "size": "1550466",
 "bit_rate": "1378192",
 "probe_score": 100,
 "tags": {
 "COMPATIBLE_BRANDS": "qt ",
 "creation_time": "2023-02-23T10:43:46.703800Z",
 "MAJOR_BRAND": "qt ",
 "MINOR_VERSION": "537199360",
 "ENCODER": "Lavf59.35.100"
 }
 }
}


-
avformat_open_input fails intermittently with avfoundation due to "audio format is not supported"
27 septembre 2019, par NaderNaderMy application uses the ffmpeg APIs (avformat, avdevice, etc) to open a selected audio input for encoding. For some inputs I can reliably open them the first time, but when I close and reopen that input later, the avformat_open_input() call fails due to "audio format is not supported". My testing shows that it never fails the first time after starting my, and has only about a 50% chance of success when reopening.
The failure only occurs with my "Built-in Microphone" audio input. I have a USB audio card that reliably opens and closes repeatedly. I have read the documentation and see that the proper way to free the resources after opening is to call avformat_close_input. The only way I have found to guarantee success is to only open the input once.
I have written a test program to recreate these failures.
int main() {
avdevice_register_all();
cout << "Running open audio test" << endl;
int i;
for(i = 0; i< 10; i++) {
AVDictionary* options = NULL;
AVInputFormat* inputFormat = av_find_input_format("avfoundation");
if (!inputFormat) {
cout << "avfoundation inputFormat=null" << endl;
}
AVFormatContext* formatContext = avformat_alloc_context();
int result = avformat_open_input(&formatContext, ":1", inputFormat, &options);
if (result < 0) {
char error[256];
av_strerror(result, error, sizeof(error));
cout << "result=" << result << " " << error << endl;
} else {
cout << "input opened successfully" << endl;
}
sleep(1);
avformat_close_input(&formatContext);
sleep(1);
}
return 0;
}I would expect the main loop to succeed each time but a typical output shows a high failure rate :
Running open audio test
input opened successfully
[avfoundation @ 0x7fdeb281de00] audio format is not supported
result=-5 Input/output error
[avfoundation @ 0x7fdeb2001400] audio format is not supported
result=-5 Input/output error
[avfoundation @ 0x7fdeb2001400] audio format is not supported
result=-5 Input/output error
input opened successfully
input opened successfully
input opened successfully
[avfoundation @ 0x7fdeb2068800] audio format is not supported
result=-5 Input/output error
input opened successfully
input opened successfullyI have tried increasing the sleep time between close and open to 5 seconds, but saw no difference in behavior.
The source of the failure is https://github.com/FFmpeg/FFmpeg/blob/master/libavdevice/avfoundation.m#L672
It appears avfoundation.m internally is opening an input stream and grabbing an audio frame to determine the format, but the value returned is not valid sometimes, when the process has previously opened and closed that input.
Am I not closing the resources properly ? Do I have a hardware issue specific to my macbook ?
Additional Details :
Tested MacBook Pro with MacOS Mojave 10.14.6
Tested with Ffmpeg 3.4.1, 4.0, and 4.1list_devices :
[AVFoundation input device @ 0x7f80fff066c0] AVFoundation video devices:
[AVFoundation input device @ 0x7f80fff066c0] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7f80fff066c0] [1] Capture screen 0
[AVFoundation input device @ 0x7f80fff066c0] AVFoundation audio devices:
[AVFoundation input device @ 0x7f80fff066c0] [0] Behringer Duplex
[AVFoundation input device @ 0x7f80fff066c0] [1] Built-in Microphone
[AVFoundation input device @ 0x7f80fff066c0] [2] USB Audio CODEC